Я включил vld.h, vld.lib и vld_x86.dll в свой проект Win32 с Visual Studio 2010. Он собирается правильно, но при выполнении вылетает с таким сообщением:
"The application was unable to start correctly (0xc0150002). Click OK to close the application."
Я запускаю его с помощью Dependency Walker, но он показывает ошибку рядом:
Error: The Side-by-Side configuration information for "D:\project\..\debug\VLD_X86.DLL" contains errors. The application has failed to start because its side-by-side configuration is incorrect.)
Я пробовал различные способы, включая возиться с манифестом, как предложено здесь:
https://vld.codeplex.com/discussions/360243
Он работает правильно, только если я прокомментировал следующую строку на vld.h
// Force a symbolic reference to the global VisualLeakDetector class object from
// the DLL. This ensures that the DLL is loaded and linked with the program,
// even if no code otherwise imports any of the DLL's exports.
//#pragma comment(linker, "/include:__imp_?g_vld@@3VVisualLeakDetector@@A")
Тем не менее, если я закомментировал эту строку, vld вообще ничего не выводит (так же как и без интеграции с vld)
Кто-нибудь имел эту проблему раньше? Любые предложения будут оценены, спасибо заранее!
У меня тоже была эта проблема, вам нужно добавить все эти файлы в тот же каталог, что и ваш vld_x86.dll / vl_x64.dll:
Microsoft.DTfW.DHL.manifest
dbghelp.dll
Который пришел из папки bin Win32 / Win64 из Visual Leak Detector. Нашел это из: https://vld.codeplex.com/wikipage?title=Building%20Visual%20Leak%20Detector%20from%20Source
У меня была эта проблема (это сообщение об ошибке) тоже. В моем случае файл vld_x86.dll, скорее всего, в другой версии, отличной от ожидаемой, был предварительно установлен и зарегистрирован другим программным обеспечением. (кажется, всем нравится VLD) Таким образом, он был загружен вместо vld_x86.dll в пути, по которому был создан VLD. Отмена регистрации сторонней DLL решает проблему.
Следовательно, вы можете проверить вывод на загрузку DLL из экзотических путей.
ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ВИЗУАЛЬНЫЕ СТУДИИ:
— Самое простое исправление, если вы не связывались со свойствами своего проекта в разделах include, linker, и убедитесь, что вы не добавили VLD вручную. Вместо этого очистите включенные вами записи и сохраните ваш проект.
-Закройте его, затем установите последний VLD, и он автоматически создаст наследующее родительское наследие для ваших проектов Visual Studio, включая пути к окружению.
Другие могут все еще войти в проблему;
Потенциальным решением проблемы является установка VLD версии 2.5.1, которую можно скачать с github: https://github.com/KindDragon/vld/releases/tag/v2.5.1
Это приносит исправление, объясненное выше, оно включает dbghelp.dll
Я получил такую ошибку, когда попытался запустить проект сразу после установки vld. Решением для меня был повторный вход в систему. Потому что установщик vld добавляет новые пути в PATH, а VS не видит их без повторного входа в систему. В противном случае вы можете использовать решение с копированием файлов dbghelp.dll и .manifest.