VC++ 2008 win32控制檯應用程序使用一些MFC函數,它可以在VC++ 2008環境中的「調試」模式下正常運行。此外,調試可執行文件可以在安裝了完整版本的Visual Studio 2008的任何計算機上運行。win32控制檯程序並排配置錯誤
,但同樣的調試可執行文件將無法在不具備Visual Studio 2008中安裝的系統上運行,它提供了以下錯誤信息:
應用程序未能啓動,因爲它並排側配置不正確。請參閱應用程序事件日誌或使用命令行sxstrace.exe工具獲取更多詳細信息。
最初搜索此問題導致MSN建議安裝VC++ 2008 x86可再發行版SP1。但是這沒能解決問題。
然後,Win32控制檯應用程序被重新編譯爲 '釋放' 模式和它提供了以下錯誤消息:
致命錯誤C1189:#ERROR:建築MFC應用程序與/ MD [d](CRT DLL版本)需要MFC共享的dll版本。請#define _AFXDLL或不要使用/ MD [d]
這個錯誤發生在afx.h頭文件中。
我試圖在預處理實際的#define _AFXDLL,但它創造了約無法新的錯誤來轉換MFC字符串類型爲char *等
我也試過「使用的MFC」設置:在靜態庫和共享DLL,都會產生更多的錯誤
問題是,原始程序是在VC++ 6.0中創建的,它使用了很多MFC函數(特別是字符串和CObject),但是在VC++ 2008中重新編譯後,以某種方式可以在調試模式下工作,但不能在發佈模式下獨立運行,這是我需要一個可以運行在新窗口(7或8)上的獨立exe文件
任何人都可以幫忙。謝謝。
請閱讀[部署原生桌面應用程序(Visual C++)](http://msdn.microsoft.com/zh-cn/library/zebw5zk9.aspx),具體爲[確定要重新分配哪些DLL](http:// msdn.microsoft.com/en-us/library/8kche8ah.aspx)。這就解釋了爲什麼你不能在沒有安裝Visual Studio的系統上運行你的應用程序。這並沒有解決您的第二個問題:由於您的編譯器/鏈接器設置不兼容,因此您的發行版配置無法生成。這是完全不同的問題,並要求點擊* Ask Question *按鈕。 – IInspectable