2013-03-09 105 views
0

我使用API​​來製作程序。它在Windows 7上運行得非常好(帶有調試文件.exe),但在Windows XP上運行它時不會運行它。有什麼方法可以解決這個問題嗎?Win32項目(API):與其他版本的Windows的兼容性

+2

當你在XP中運行它會發生什麼?即你收到一些消息框嗎?該程序使用什麼編譯器和版本?它是32位還是64位程序? – user1610015 2013-03-09 03:47:12

+1

出現消息框。它說:「此應用程序未能啓動,因爲未找到MSVCR100D.dll。重新安裝應用程序可能會解決此問題。」 – suti 2013-03-09 04:21:08

+1

您需要在XP機器上安裝[Visual C++ 2010 Redistributable](http://www.microsoft.com/en-us/download/details.aspx?id=8328)。有關更多詳細信息,請參閱[本次討論](http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/3c9a5b9b-1a7d-4d86-bc82-85652448e0c9)。 – 2013-03-09 04:23:22

回答

3

我想你正在使用Visual C++,根據你得到的消息。

您的項目設置(默認情況下)以動態鏈接Microsoft C++ Runtime Librairy,因此它可以節省最終可執行文件中的空間,但需要動態鏈接庫位於系統或可執行文件夾中。

爲了在Visual C++中解決這個問題,無需承擔誰在他們的機器上執行程序,您可以更改MSVC如何將其運行時庫鏈接到可執行文件,也就是說,如果將它設置爲靜態鏈接,依賴關係將在您的最終.exe內部鏈接,不需要額外的.dll s。

要更改此選項,請參閱/MD, /MT, /LD (Use Run-Time Library) - MSDN

或簡稱:項目屬性>配置屬性>C/C++>代碼生成>運行時庫

如果在調試模式下,使用/MTd,否則使用/MT