轉(zhuǎn)自:http://www.byywee.com/page/M0/S530/530822.html
昨天編譯文件時出現(xiàn)了Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~的錯誤。
在網(wǎng)上很容易找到了解決的方案,公布如下:
對著你的項目點擊右鍵,依次選擇:屬性、配置屬性、常規(guī),然后右邊有個“項目默認值”,下面有個MFC的使用,選擇“在共享 DLL 中使用 MFC”,就OK了~~~
確實如此,可是知其然卻不知其所以然,于是我把MFC的DLL相關(guān)內(nèi)容學習了一下,小結(jié)如下:
使用VS2008,在項目屬性中有一項MFC的使用,有三種設(shè)置:
1.使用標準Windows庫
2.在共享DLL中使用MFC
3.在靜態(tài)庫中使用MFC
第一種顧名思義。第二種指的是打包時一些MFC的DLL的內(nèi)容沒有被包含在EXE文件中,所以EXE文件較小,但是運行時要求系統(tǒng)中要有相關(guān)的DLL文件。第三種是將DLL中的相關(guān)代碼寫進EXE文件中,文件較大,但是可以在沒有相關(guān)DLL的機器上運行。
同時,如果程序本來是第二種方式,發(fā)給同事,在同事機器上運行時,可能會出現(xiàn)錯誤:
“無法啟動程序……,由于應(yīng)用程序配置不正確,未能啟動此應(yīng)用程序?!?/p>
我覺得,在開發(fā)階段的程序都選第3種比較好吧,不用管。
看了上面說的,我就準備改成靜態(tài)庫中使用MFC,經(jīng)過我修改以后發(fā)現(xiàn)有一點問題:general error c101008a: Failed to save the updated manifest to the file "...解決方案也列如下:
不能保存更新的文件,就是以前殘留的文件沒有刪除,即:要刪除Debug文件夾(這個問題以前已經(jīng)討論過了,有些錯誤必須這樣做)
解決方法:2種方法:
第1種方法.手動刪除Debug,注:在VS2008有2個Debug,2個都要刪
第2種方法:自動刪除:在VC++6.0編譯器下,build--->Clean,而在VS2008下,build--->clean solution
聯(lián)系客服