2009-05-28 63 views
0

此應用程序未能啓動 ,因爲應用程序配置 不正確。重新安裝 應用程序可能會解決此問題。
在測試香草機上測試visual c.exe不會啓動

這是我所得到的,當我嘗試在系統上我調試文件,無需安裝Visual Studio。 我試圖將Debug_NonRedist \ x86 \ Microsoft.VC90.DebugCRT複製到與我的exe文件相同的文件夾中,但沒有運氣。

  • dll在Microsoft.VC90.DebugCRT文件夾中的exe文件夾中。
  • DLL在同一個exe文件夾和DLL。


我也安裝了「Microsoft Visual C++ 2008 Redistributable Package」。

回答

1

最簡單解決辦法是用靜態鏈接而不是動態鏈接來編譯你的exe文件。

用Visual Studio打開您的項目。

從菜單中選擇項目 - >屬性(或右鍵單擊該項目並選擇「屬性:從Solution Explorer)

從標籤樹控件:配置屬性:C/C++:代碼代

更改「運行時庫」設置從「多線程調試DLL(/ MDD)」到「多線程調試(/ MTD)」
重建,重新複製,並且所有shoudl好


否則,另一種解決方案是實際構建捆綁VC9運行時位的MSI。生成安裝項目,包括這些MSM合併模塊:

「C:\ Program Files文件\ Common Files文件\合併模塊\ Microsoft_VC90_DebugCRT_x86.msm」
「C:\ Program Files文件\ Common Files文件\合併模塊\ policy_9_0_Microsoft_VC90_DebugCRT_x86.msm 「

(如果您正在運行64位,這些文件是在您的 」C:\ Program Files文件(x86)的「 目錄)


最後,如果這也不行,你可能得到一些其他DLL(MFC?),可能也需要複製。我相信,當你得到「應用程序配置不正確」錯誤時,你可以看看系統事件日誌(控制面板 - >管理工具 - >事件查看器)。通常有關於缺少DLL的詳細錯誤消息。

+0

然後我的程序崩潰,因爲我有一個DLL使用crt和我從它收到的免費東西。 – CiNN 2009-05-28 09:20:49

+0

那東西從哪裏來?使用動態調試CRT不會解決這個問題,除非這些東西是從它開始分配的。 – 2009-05-28 15:26:56

2

調試CRT不可分配。 「Microsoft Visual C++ 2008可再發行組件包」不包含調試CRT。應用程序有一個自動生成的清單,告訴操作系統從SxS系統加載調試CRT。

請參閱this CodeProject article瞭解使用專用程序集的方法,以便您的應用程序使用您手動複製到其他系統的調試CRT dll。

0

我會建議做一個發佈版本,並試圖在香草機(以及該機器上安裝的Microsoft Visual C++ 2008可再發行組件包),並看看是否有效。

很可能您的應用程序也使用了您可能尚未複製的MFC和C++ DLL。即MFC90D.DLL,MSVCR90D.DLL,MSVCP90D.DLL