"Приложение не смогло начать правильно" после включения vld.h
Я включил vld.h, vld.lib и vld_x86.dll в свой проект Win32 с визуальной студией 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 exports.
//#pragma comment(linker, "/include:[email protected]@[email protected]@A")
Однако, если я прокомментировал эту строку, vld вообще ничего не выводит (так же, как без интеграции vld)
Кто-нибудь, у кого есть эта проблема раньше? Любые предложения будут оценены, спасибо заранее!
Ответы
Ответ 1
У меня тоже была эта проблема, вам нужно добавить все эти файлы в тот же каталог, что и ваш vld_x86.dll/vl_x64.dll:
Microsoft.DTfW.DHL.manifest
dbghelp.dll
Что из папки Win32/Win64 bin из Visual Leak Detector. Найдено от: https://vld.codeplex.com/wikipage?title=Building%20Visual%20Leak%20Detector%20from%20Source
Ответ 2
У меня была эта проблема (это сообщение об ошибке) тоже. В моем случае vld_x86.dll, скорее всего, в другой, чем ожидаемая версия, была предварительно установлена и зарегистрирована каким-либо другим программным обеспечением. (Кажется, всем нравится VLD) Таким образом, он был загружен вместо vld_x86.dll в пути, к которому был построен VLD. Отмена регистрации чужой DLL решила проблему.
Следовательно, вы можете проверить выход для загрузки DLL с экзотических путей.
Ответ 3
ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ВИЗУАЛЬНЫЕ СТУДИИ:
- Самое простое исправление, если вы не возились со своими свойствами проекта в разделах include, linker, убедитесь, что вы не добавляли вручную VLD вручную. Вместо этого очистите включенные вами здесь и сохраните свой проект. -Закройте его, затем установите последний VLD, и он автоматически создаст наследование родительского наследования для ваших проектов визуальных студий, включая пути среды.