2009-09-17 38 views
0

我是新來的C++。我用VS 2008 Professional製作了一個C++程序。我開始使用爲我創建窗口的Win32模板。我將其編譯到Vista 32上。我將編譯好的exe文件帶到我的舊版XP SP2計算機上,它告訴我應用程序配置不正確。有什麼我做錯了嗎?我如何讓平臺獨立?應用程序配置不正確錯誤C++

感謝

回答

2

嘗試安裝Microsoft Visual C++ 2008 SP1 Redistributable Package,並確保您使用的應用程序的發佈版本。

+0

那麼我怎麼能做一個沒有依賴的應用程序,這有點令人失望,因爲我從.Net過渡到希望不必擔心這個東西;我可以使用VC 6還是其他? – jmasterx 2009-09-17 17:54:01

+3

您可以通過靜態鏈接到運行時支持庫來避免依賴關係。 – 2009-09-17 17:58:23

1

確保WINVER設置爲包括WinXP的一個版本 - 它看起來像Windows的缺省目標版本爲VS 2008是Vista的(爲0x0600)。

設置以下預處理器定義:

#define WINVER 0x0501 

優選使用項目屬性 「C/C++ /預處理器/預處理器定義」 或中的cl.exe命令行上-D選項。也有可能有一個targetver.h文件具有此設置(取決於您最初創建項目的方式)。

有關更多詳細信息,請參閱http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx

+0

這是一個好主意,但可能不是基於正在發生的錯誤的問題。 – crashmstr 2009-09-17 18:19:19

0

您可以使用Dependency Walker來查找目標WinXP系統上缺少哪些組件。然後你應該安裝適當的可再分發包。

0

在項目屬性中,將"C/C++ -> Code Generation -> Runtime Library"設置爲"Multi-threaded (Debug)"。重建之後,應用程序將不再依賴於msvcr90.dll。然而,應用程序二進制文件會稍大。

+0

當然,對於發佈版本,您應該使用「多線程」(而不是調試)。如果你的應用程序本身由多個DLL組成,這也是一個壞主意。 – MSalters 2009-09-18 10:44:14

相關問題