简体   繁体   English

即使安装了MSVCP100.dll也找不到错误

[英]MSVCP100.dll not found error even when it is installed

i get the following error when i try to run an exe on a x64 machine that was build for x86 CPU using the MC++ compiler (vs2010) on a x86 machine: 当我尝试在x86机器上使用MC ++编译器(vs2010)为x86 CPU构建的x64机器上运行exe时,我收到以下错误:

程序无法启动,因为您的计算机缺少MSVCR100.dll。

i already have visual studio 2012 (along with Visual C++ 2012 Update 4 redistributable- both x86 and x64) installed on this second (x64) machine. 我已经在第二台(x64)计算机上安装了visual studio 2012(以及可重新分发的Visual C ++ 2012 Update 4,x86和x64)。

A quick search tells me the "MSVCR100.dll" is already present in "C:\\Windows\\System32". 快速搜索告诉我“MSVCR100.dll”已存在于“C:\\ Windows \\ System32”中。

i tried to install the Microsoft Visual C++ 2010 Redistributable but it exited with an error telling me that a superior version is already installed. 我尝试安装Microsoft Visual C ++ 2010 Redistributable,但它退出时出现错误,告诉我已安装了高级版本。

Please guide me what i am doing wrong. 请指导我做错了什么。 :) :)

Firstly , in 64-bit versions of Windows, 32-bit system executables and application extension files (aka DLLs) are placed in %systemroot%\\SysWOW64 instead of %systemroot%\\System32 (which, somewhat counterintuitively, contains 64-bit versions in a 64-bit Windows). 首先 ,在64位版本的Windows中,32位系统可执行文件和应用程序扩展文件(也称为DLL)放在%systemroot%\\SysWOW64而不是%systemroot%\\System32 (这有点违反直觉,包含64位版本)一个64位的Windows)。 So the SysWOW64 folder has to be checked for the x86/32-bit MSVC(++) DLLs. 因此,必须检查SysWOW64文件夹中的x86 / 32位MSVC(++)DLL。

Secondly , though installation of the corresponding visual studio version on the target machine or having accompanied the distributed program with the required C(++) DLLs should, theoretically, solve the problem, it's not necessary. 其次 ,虽然在目标机器上安装相应的visual studio版本或者附带带有所需C(++)DLL的分布式程序,理论上应该解决问题,但这不是必需的。 It's sufficient to have the corresponding MSVC++ redistributable package installed (ieeg Microsoft Visual C++ 2010 x86 redistributable package in this particular case). 安装相应的MSVC ++可再发行组件就足够了(例如,在这种特殊情况下,Microsoft Visual C ++ 2010 x86可再发行组件包)。

Notes: 笔记:

  1. The aforementioned info are theoretically correct but damaged Windows installations or ... may not conform. 上述信息在理论上是正确的,但损坏的Windows安装或......可能不符合。
  2. Including the C++ DLLs with the distributed program is acceptable (and possibly a conservative but correct decision) but installing a Visual Studio version solely to be able to use the DLLs in question definitely isn't. 将C ++ DLL与分布式程序一起包括是可以接受的(并且可能是一个保守但正确的决定),但安装Visual Studio版本仅仅是为了能够使用有问题的DLL肯定不是。
  3. As a side note, C++ redistributable packages don't install the debug versions of the DLLs so installation of or access to a corresponding Visual Studio version is necessary for running debug-compiled applications. 另外,C ++可再发行组件包不会安装DLL的调试版本,因此运行调试编译的应用程序需要安装或访问相应的Visual Studio版本。

Your application needs the dll for VS2010. 您的应用程序需要VS2010的dll。 you should place MSVCR100.dll and MSVCP100.dll from your x86 machine beside your exe. 你应该在你的exe旁边的x86机器上放置MSVCR100.dllMSVCP100.dll You can also install VS2010 alongside your current VS2012. 您也可以将VS2010与当前的VS2012一起安装。 then you should also install the Service Pack1 for VS2010 to work properly. 那么你也应该安装VS2010的Service Pack1才能正常工作。 After installing VS2010 you have access to both mentioned dlls and also you probably don't need to copy them to your exe directory. 安装VS2010后,您可以访问两个提到的dll,也可能不需要将它们复制到您的exe目录。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM