"MSVCP100.dll不是专为在Windows上运行而设计,或者包含错误"

bde*_*ham 3 dll visual-studio-2010

我使用Visual Studio 2010 Express在C++中构建了一个应用程序.当我试图在某台计算机上运行它时,我收到了这个错误:

MyApplication.exe - 错误的图像

C:\我的应用程序的路径\ MSVCP100.dll要么不是设计为在Windows上运行,要么包含错误.尝试使用原始安装介质再次安装程序,或与系统管理员或软件供应商联系以获取支持.

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

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

Han*_*ant 5

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

请记住,您的构建计算机上可能有两个此DLL副本,x86和x64版本.VS的后续版本有第三个版本,即ARM版本.所以你挑选错误的赔率非常高.通常你的目标是x86,你测试程序的那个存储在c:\ windows\syswow64目录中.64位版本位于c:\ windows\system32中.

这些目录如何得到这些看似落后的名字是另一天的故事:)赞成使用VS安装目录的vc/redist子目录作为副本的源,它不那么模糊.