Bha*_*jwa 7 c++ deployment dll msvcrt visual-studio-2012
当我尝试在x86机器上使用MC++编译器(vs2010)为x86 CPU构建的x64机器上运行exe时,我收到以下错误:
我已经在第二台(x64)计算机上安装了visual studio 2012(以及可重新分发的Visual C++ 2012 Update 4,x86和x64).
快速搜索告诉我"MSVCR100.dll"已存在于"C:\ Windows\System32"中.
我尝试安装Microsoft Visual C++ 2010 Redistributable,但它退出时出现错误,告诉我已安装了高级版本.
请指导我做错了什么.:)
小智 5
首先,在 64 位版本的 Windows 中,放置的是 32 位系统可执行文件和应用程序扩展文件(又名 DLL) (这%systemroot%\SysWOW64
有点%systemroot%\System32
违反直觉,在 64 位 Windows 中包含 64 位版本)。因此,必须检查 SysWOW64 文件夹中是否有 x86/32 位 MSVC(++) DLL。
其次,虽然理论上在目标机器上安装相应的Visual Studio版本或附带所需的C(++)DLL的分布式程序应该可以解决问题,但没有必要。安装相应的 MSVC++ 可再发行软件包就足够了(例如,在本例中为 Microsoft Visual C++ 2010 x86 可再发行软件包)。
笔记:
您的应用程序需要 VS2010 的 dll。你应该将MSVCR100.dll
和MSVCP100.dll
from 你的 x86 机器放在你的 exe 旁边。您还可以将 VS2010 与当前的 VS2012 一起安装。那么你还应该安装VS2010的Service Pack1才能正常工作。安装 VS2010 后,您可以访问上述两个 dll,并且可能不需要将它们复制到 exe 目录。