包含vld.h后,“应用程序无法正确启动”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包含vld.h后,“应用程序无法正确启动”相关的知识,希望对你有一定的参考价值。
我在Visual Studio 2010的Win32项目中包含了vld.h,vld.lib和vld_x86.dll。它构建正确,但是当我执行时,它会崩溃并显示以下消息:
"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..debugVLD_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
它来自Visual Leak Detector的Win32 / Win64 bin文件夹。发现这个来自:https://vld.codeplex.com/wikipage?title=Building%20Visual%20Leak%20Detector%20from%20Source
我也有这个问题(这个错误信息)。在我的情况下,vld_x86.dll(很可能是在预期版本之外的其他版本)是由其他软件预安装和注册的。 (似乎每个人都喜欢VLD)因此,在VLD构建的路径中加载了它而不是vld_x86.dll。取消注册外部DLL解决了这个问题。
因此,您可能需要检查输出以从异常路径加载DLL。
如果您正在使用可视化工作室: - 最简单的修复,如果您没有在包含中弄乱您的项目属性,链接器部分确保您没有手动添加VLD。而是清除您在此处制作的包含并保存您的项目。 - 关闭它然后安装最新的VLD,它将自动为您的可视工作室项目创建包含父继承,包括环境路径。
其他人可能仍然会遇到这个问题; 一个潜在的解决方法是安装VLD版本2.5.1,可以从github下载:https://github.com/KindDragon/vld/releases/tag/v2.5.1
它带来了上面解释的修复,它包括dbghelp.dll
我在安装vld之后尝试运行项目时遇到了这样的错误。我的解决方案是重新登录。因为vld安装程序会向PATH添加新路径,而VS在没有重新登录的情况下也看不到它们。否则,您可以使用复制文件dbghelp.dll和.manifest的解决方案。
以上是关于包含vld.h后,“应用程序无法正确启动”的主要内容,如果未能解决你的问题,请参考以下文章
Visual Leak DetectorRelease 模式下使用 VLD
在 mingw-w64/msys2 中编译的应用程序,“应用程序无法正确启动(0xc00007b”