2013-05-27 44 views
4

我從Visual C++ 2010 Express切換到適用於我的應用程序(歐拉數學工具箱)的Visual C++ 2012專業版。爲了與XP兼容,我使用Visual C++ 2012的Update 1中的110-XP平臺工具集。包括與應用程序的Visual C++運行時

在早期版本中,我在程序目錄中添加了三個DLL文件MSV90 * .dll,併爲這些DLL文件提供了清單。我可以在Visual C++ 110中使用嗎?我需要包含哪些文件?我需要清單嗎?如果是這樣,我在哪裏可以找到一個?

+7

在應用程序中包含[Visual C++ Redistributable Package](http://www.microsoft.com/en-us/download/details.aspx?id=30679)。使用軟件包安裝程序來複制文件;不要自己複製它們。 (因爲你可能會不小心覆蓋較舊版本的較新版本。) –

+0

@RaymondChen - 如果我可以upvote你的評論100倍,我會。這是做到這一點的最佳方式。添加它作爲答案,我會upvote。 – pstrjds

+0

隨時回答你自己的問題,並接受它。 –

回答

3

總結我的發現至今,有四個選項:

  1. 提供的鏈接MS下載頁面VC運行庫。
  2. 將VC運行時的安裝程序添加到您的安裝中。
  3. 將msvcr ***。dll複製到您的程序目錄中。
  4. 編譯靜態庫。

所有這些似乎工作。 (1)或(2)顯然有不同版本的運行時間的問題。我們需要信任Microsoft和程序開發人員以保持兼容性。

(3)有問題,您添加的dll必須在目標機器上運行。

我決定使用(4),因爲它的工作原理。要嘗試此操作,請在項目的C++ - > Code Generation屬性中設置/MT

+0

你列出的1,2和3的問題並沒有太大的意義。對於1和2來說,保持兼容性並不是一個負擔,因爲你編譯應用程序的代碼來定位特定版本的CRT,所以你知道它們一起工作。然後,您鏈接到(或捆綁)此版本的CRT兼容性問題。對於3,我甚至不知道「你添加的DLL必須在目標機器上運行」。這也不算什麼問題,CRT在所有機器上都運行良好。如果沒有,你會遇到更大的問題。如果你擔心加載DLL的成本...不要。 –

+0

對於1,只要所有版本的VC110運行時間兼容,就可能是正確的。有不同的版本,不是嗎?對於2,安裝程序可能比當前版本舊,這是一個問題。如果你爲你的程序選擇正確的版本(ARM,32位或64位),你說得對3。我遇到了麻煩。 – Rene

相關問題