2010-09-22 76 views
8

我在Windows 7 64位的Visual Studio 2010中创建了一个程序。 当我尝试在Windows XP 32位上运行它时,我收到msvcr100.dll丢失的消息。当我尝试将该文件从Win7复制到WInXP时,我收到msvcr100.dll错误的消息。 如何在VS中设置建筑,这样msvcr100.dll就没有必要了?msvcr100.dll缺失

回答

13

首先,您需要确保您正在构建32位可执行文件 - 64位可执行文件不能在32位Windows上运行。

此后,您可以...

  • 船舶the 32 bit redistributables与您的应用程序。
  • 完全删除运行时依赖项并静态链接到C++运行时。为此,请将Project -> Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library设置为Multi-threaded (/MT)
+0

Thanx,那帮助:) – Ichibann 2010-10-27 15:07:24

2

静态链接运行时库应该有所帮助。转到项目选项 - > C/C++ - >代码生成 - >运行时库并将值更改为多线程或多线程调试并重新编译。这样你的应用程序就不应该依赖于运行时DLL。

另外不要忘记建立一个32位可执行文件。上述

1

的回答帮我一起,但我仍然得到错误:

fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds

因此,为了帮助其他谁可能和我一样,花了太多的时间在寻找一个明确的解决方案的绊脚石左右,我想补充一点信息来解决这个问题。事实证明,我的项目有错误的“使用MFC”设置来利用上面的答案。

为了把它明确条款:

打开项目属性(ALT-F7或Project菜单 - > [我的项目]属性)和去Project -> Properties -> Configuration Properties

如果General -> Use of MFC设置为Use MFC in a Static Library

必须设置

C/C++ -> Code Generation -> Runtime Library

到EIT她Multi-threaded Debug (/MTd)Multi-threaded (/MT)

如果

General -> Use of MFC设置为Use MFC in a Shared DLL

必须设置

C/C++ -> Code Generation -> Runtime Library

要么Multi-threaded DLL (/MD)Multi-threaded Debug DLL

我得到这个答案来回回在Microsoft community answers website和所有功劳应该去David Wilkinson