C++ MSVCP100.dll未找到错误,即使已安装
当我尝试在x64计算机上运行exe时,会出现以下错误,该计算机是在x86计算机上使用MC++编译器(vs2010)为x86 CPU构建的:C++ MSVCP100.dll未找到错误,即使已安装,c++,visual-studio-2012,dll,deployment,msvcrt,C++,Visual Studio 2012,Dll,Deployment,Msvcrt,当我尝试在x64计算机上运行exe时,会出现以下错误,该计算机是在x86计算机上使用MC++编译器(vs2010)为x86 CPU构建的: 我已经有VisualStudio 2012(连同VisualC++ 2012更新4可重新分发的X86和X64)安装在第二个(X64)机器上。 快速搜索告诉我“MSVCR100.dll”已经存在于“C:\Windows\System32”中 我尝试安装微软Visual C++ 2010可重分发但它退出了一个错误告诉我已经安装了一个高级版本。 请告诉我我做错了
我已经有VisualStudio 2012(连同VisualC++ 2012更新4可重新分发的X86和X64)安装在第二个(X64)机器上。 快速搜索告诉我“MSVCR100.dll”已经存在于“C:\Windows\System32”中
我尝试安装微软Visual C++ 2010可重分发但它退出了一个错误告诉我已经安装了一个高级版本。请告诉我我做错了什么。:) 您的应用程序需要VS2010的dll。您应该将x86机器上的
MSVCR100.dll
和MSVCP100.dll
放在exe旁边。您还可以将VS2010与当前的VS2012一起安装。然后,您还应该安装VS2010的Service Pack1才能正常工作。安装VS2010后,您可以访问上述两个DLL,并且可能不需要将它们复制到exe目录。首先,在64位版本的Windows中,32位系统可执行文件和应用程序扩展文件(也称为DLL)放置在%systemroot%\SysWOW64
中,而不是%systemroot%\System32
(在64位窗口中包含64位版本,这有点违反直觉)。因此,必须检查SysWOW64文件夹中的x86/32位MSVC(++)DLL
其次,虽然在目标机器上安装相应的visual studio版本,或者在分布式程序中附带所需的C(++)DLL,理论上可以解决问题,但这并不是必需的。安装相应的MSVC++可再分发软件包(例如微软Visual C++ 2010 X86可重分发包在这种特殊情况下)就足够了。
注意事项:
如果您是用VS2010构建的,则必须安装VS2010版本的运行时。为了帮助您调试问题,您可能需要尝试实际查看二进制文件到底在寻找什么。@RogerRowland,但如前所述:“我试图安装微软Visual C++ 2010可重新分发,但它退出了一个错误告诉我,一个高级版本(微软C++ +可重新分配2012更新4)已经安装在系统上。“好吧,这不是我的事。我可以为VS2005、VS2008、VS2010和VS2012安装vcredist,它们在我们的安装程序中对于不同的组件都是必需的。您是从哪里下载可再发行文件的?听起来您安装的是不同的VS2012版本,而不是VS2010版本。已安装的DLL具有不同的名称。试试。@RogerRowland从这里下载了(x86和x64):我也在考虑尝试同样的方法。我试试看,让你知道。这很有效。非常感谢。但这是一个缺点。如果要执行可调试的exe,是否需要在每台计算机上安装visual studio 2010?您应该在未安装VS的其他平台上移植应用程序的发布版本。应用程序的调试版本和各种Visual C++ DLL都不能重新分配。对于调试版本,您需要在目标PC中安装C++可重新分配包。非常感谢。经过几个小时的搜索,它解决了我的问题。