2010-09-22 74 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