我在谷歌上搜索并意识到可能有几个原因,所以我将描述我的情景.
当我的应用程序尝试加载在另一个版本的Visual Studio(2010)中构建的.dll文件时,会发生这种情况,如果我在Visual Studio 2008上构建相同的项目,则DLL文件加载得很好......
我不知道它是否重要,但Visual Studio 2010 DLL文件版本是在Windows 7 x32上构建的,而Windows Vista 64位则是在Visual Studio 2008的另一端.
我在带有Windows 8的64位计算机上运行Microsoft Visual Studio Express 2012 for Windows Desktop.
我创建了一个全新的Win32控制台应用程序(在C++中)并接受默认选项.然后,我在调试和发布模式下构建并运行解决方案,它可以运行所有查找和花花公子.接下来,我为动态 SFML库配置include和library目录.我链接到调试和发布.lib文件,并将调试和发布.dll文件放在正确的目录中.然后我添加了一些使用库的简单代码,在调试模式下构建和运行应用程序,我得到了这个错误:" The program can't start because MSVCR100D.dll is missing from your computer. Try reinstalling the program to fix this problem."如果我在发布模式下构建并运行应用程序,它可以正常工作,没有错误.(是的,我有redistributables安装了32位和64位.)现在根据我的理解,根据这个线程,.dll文件仅用于调试,并且不包含在可再发行组件包中(这可以解释为什么它不起作用)在调试模式下).答案是开发人员默认使用visual studio安装它.这显然不是错误的证据,我重新安装了visual studio并重新启动了我的计算机两次.
总之,如何在调试模式下编译我的解决方案而不会出现此错误?
我担心有人会将此标记为副本,所以我们开始:
链接 - "......您似乎链接到运行时的调试版本,分发与运行时调试版本链接的应用程序是不正常的."
不属于我,因为我没有分发这个应用程序,只是尝试在调试模式下运行它.
链接 - "我使用Microsoft visual c ++ 2010 Express Edition编译了我的程序,并尝试在另一台没有相同编译器的机器上运行它."
当他在另一台计算机上运行他编译的内容时,这个人会得到错误,而不是在实际编译应用程序时.
链接 - "如果您的发布版本出现此错误......"
我不.
链接 - "您可以在"发布"中编译您的项目..."
我的项目还没有准备好发布,因此我应该在调试模式下编译我的项目.
我所拥有的是当我想将我创建的exe调试项目(没有任何问题)复制到另一台机器时显示此错误(显示错误消息).
根据之前发布的问题,摆脱错误消息的最佳解决方案是在Configuration Manager中进行发布而不是调试.
这样做,当使用RELEASE重建项目时,我的项目中出现了新的错误,这些错误在执行DEBUG时未包括在内.
例如,其中一个是:
Error 2 error C1083: Cannot open include file: 'opencv\highgui.h': No such file or directory c:\...\projects\...\ex\opencv.h 4
23 IntelliSense: identifier "IplImage" is undefined c:\...\ex.cpp 80
Run Code Online (Sandbox Code Playgroud)
有什么反馈吗?