2008-09-17 120 views
2

在Vista上編譯使用Visual Studio 2008的簡單C++項目後,在原始vista機器和其他vista計算機上運行良好。但是,將其移至XP盒會導致錯誤消息:「應用程序配置不正確導致應用程序無法啓動」。C++庫的不同版本

我必須做什麼,我的編譯EXE適用於XP和Vista?幾個月前我也遇到了同樣的問題,只是在項目上修改了一些設置,但我不記得我改變了哪些。

回答

1

您需要將運行時可再發行文件安裝到您嘗試運行應用程序的機器上。

2008年的可再發行版爲here

2005年的可再發行版爲here

它們可以並排安裝,以防萬一需要。

+0

是的,但我寧願沒有讓用戶做到這一點。沒有辦法針對較舊的庫進行編譯? – user16773 2008-09-17 20:42:27

1

您可能需要將VC運行時與應用程序一起分發。有很多種方法可以做到這一點。 This article從微軟的Visual C++團隊最好的解釋了不同的方式,如果你正在使用Visual Studio 2005或2008

正如文章指出,雖然你也可以下載可再分發安裝包,只需啓動該上分發這些依賴客戶機,這幾乎總是不是最佳選擇。如果您只是想分發壓縮文件夾,通過Windows安裝程序或App-Local副本分發,通常會有更好的方法來包含所需的DLL,例如包括合併模塊。

另一種選擇是靜態鏈接運行時庫,而不是將它們分發給您的應用程序。此選項僅適用於不加載其他DLL的獨立EXE。您也無法使用其他應用程序加載的DLL來執行此操作。

0

靜態鏈接到運行時是非常簡單的。

C++ - >代碼生成 - >運行時庫,並選擇「多線程/ MT」

然而,這確實讓您的可執行幾百K字節大。如果你安裝了大量的小程序,這可能會成爲一個問題,因爲每個程序都會受到它自己的運行時拷貝的影響。答案是創建一個安裝程序。

新的工程 - >「設置和部署」 - >「設置項目」

負載從應用程序項目輸出到安裝項目,並構建它(使用運行時的DLL版本中定義)。注意到運行時DLL的依賴關係,包含在安裝程序包中,並且整潔,不顯眼地安裝在目標機器上的正確位置。