2010-09-27 148 views
3

使用Visual Studio,我構建了一個運行在32位的C++應用程序。它將被部署到32位和64位Windows服務器。它不會以64位模式(而是在WoW下)運行。64位操作系統上的32位VC++可再發行?

我應該同時包括32位和64位Visual C++可再發行組件,並在32位Windows和64位Windows上安裝32位或64位,還是隻安裝32位可再發行組件?

回答

3

安裝32bit redistributable就足夠了。

1

兩者都是微軟的產品,但不要讓它欺騙你。

您的C++應用程序創建一個32位EXE,鏈接到32位DLL。碰巧,其中一個或兩個DLL是Microsoft CRT DLL,但操作系統仍然使用相同的規則。因此,您不需要64位DLL。

0

64位Visual C++可再發行組件包包括32位Visual C++可再發行組件和64位Visual C++可再發行組件。

+1

@bitoolean指出此信息不正確,因此64位可重新分發的軟件包可能不包含32位版本(我沒有自己測試它)。 – Micka 2016-02-10 14:14:14

1

使用/ MT選項編譯它,並將VC++運行時庫編譯到您的exe文件中,因此您不必擔心分發它。

項目>屬性>配置屬性> C/C++>代碼生成>運行時庫>多線程(/ MT)。

+4

這不是一個好主意,因爲MS在VC++運行時中的任何錯誤修復(包括安全問題)都不會成爲您的產品,因爲您將擁有一個靜態exe。應該根據利弊明確權衡嵌入運行時間。 – Jaywalker 2013-11-04 12:41:55

2

這不是一個答案。它應該只是一個評論,但因爲我沒有所需的聲譽...:

我只是想提醒人們注意魯爾提供的信息。不,64位Visual C++可再發行組件包不包含32位DLL。

我甚至測試過他的理論。我試圖運行一個需要Visual C++ 2010 32位可再發行組件的應用程序,它促使我需要它。然後我安裝了64位版本,並且它仍然提示它需要Visual C++ 2010的32位版本。安裝32位版本後,它工作。

爲什麼人們提出理論,並提供他們作爲答案擊敗我。或者,也許他也受到信譽系統的「鼓勵」,不僅給予多餘的信息,而且還給出虛假的信息。或者,也許他只是將C++與DirectX 9可再發行組件(其中一個會安裝32位和64位DLL)混淆起來。

相關問題