2014-09-10 86 views
3

我使用Visual Studio 2010 Express在C++中构建了一个应用程序。当我试图今天一定的计算机上运行它,我得到这个错误:“MSVCP100.dll不是设计为在Windows上运行,或者它包含错误”

MyApplication.exe - Bad Image

C:\Path to My Application\MSVCP100.dll is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support.

提到的DLL是Visual C++可再发行的DLL之一。我的应用程序的安装程序用于启动这些DLL的Microsoft安装程序,但我最近调整它只是为了将msvcp100.dll和msvcr100.dll安装在我的应用程序旁边。这种新方式在少数其他计算机上运行良好,但我无法排除这种可能性,因为这些DLL已经在系统级别安装在其他计算机上。

什么导致这种突然的DLL不匹配?

回答

5

这是STATUS_INVALID_IMAGE_FORMAT,DLL头中的Machine属性与应用程序的体系结构不匹配。

请记住,您的生成计算机上可能有两个这个DLL的副本,x86和x64版本。 VS的更新版本有第三个版本,即ARM版本。所以选择错误的几率非常高。通常你的目标是x86,你测试你的程序的那个存储在c:\ windows \ syswow64目录中。 64位版本位于c:\ windows \ system32中。

这些目录如何得到这些看似倒退的名字是另一天的故事:)赞同使用VS安装目录的vc/redist子目录作为副本的来源,它不太模糊。

+0

你说得对。使用C:\ Windows \ SysWOW64中的DLL让应用程序正常工作。 – bdesham 2014-09-11 15:06:37

-1

这个.dll文件涉及到Microsoft Visual C++ 2010 Redistributable x64 Package

尝试通过使用控制面板中的“添加或删除程序”项删除Microsoft Visual C++ 2010 Redistributable x64程序包。

然后,从网站安装最新版本的Visual C++(文件名= vcredist_x64.exe):

http://www.microsoft.com/en-us/download/details.aspx?id=26999

希望这有助于..

相关问题