我在visual studio 2010上使用win 7 32bit的机器工作。
我尝试在发布模式下运行在其他计算机上运行良好的代码(win7 64位),并出现以下消息:
The program can't start because msvcp80.dll is missing...
我试着查看处理这个问题的线程。试图安装不同的Redistributable运行时版本。试图将这些文件(msvcp80.dll,msvcm80.dll,msvcr80.dll)复制到项目目录。还有一些不同的东西,我甚至都没有意识到我在做什么。
也许还有其他一些想法?
行
感谢您的回答。
在我开始项目之前,我确认所有的构建dll都是32位。
我在'opencv'项目上工作并将问题缩小到这个:opencv_imgproc230 lib函数(如cvtColor,GaussianBlur)上发生的唯一问题'是什么原因导致我检查上面的程序(the_mandrill的链接)包括在这个dll。它包括(或者我认为)msvcp100.dll似乎是合理的,因为我在VS10环境中工作。但即使它是msvcp80.dll的尖叫,我想是什么属于VS80。
顺便说一句,当我手动包含(msvcp80.dll,msvcm80.dll,msvcr80.dll)时,它会尖叫:
“R6034应用程序尝试错误地加载c运行时库...”
似乎需要告诉他使用VS10版本(对于这个dll的/运行时库)
答案 0 :(得分:2)
安装Dependency Walker并以'个人资料'模式运行(f7),这将显示它正在寻找的dll并且无法找到。
答案 1 :(得分:0)
你能检查一下你的dbit是不是32位?也许你有64位版本。
请参阅How can I test a Windows DLL file to determine if it is 32 bit or 64 bit?。
答案 2 :(得分:0)
这只是意味着您动态地再次链接MSVC C运行时。 所以你必须安装所谓的redist包。
msvcp80.dll - > VC 8 - > VS 2005
通过redisrt软件包安装到中心位置的dll应该可以在安装后解析。
答案 3 :(得分:0)
请参阅this question。
您提到您已安装VC8重新发布程序包,但您可能错过了“正确”的程序包。
你可能想要:Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update