關於VC6 0 和其他VS編譯器

2021-05-23 14:47:10 字數 2080 閱讀 2334

最近想寫一些

mfc應用程式,在發布的時候遇到了幾個問題,從中得到了一點體會,與大家分享一下。

遇到的幾方面問題的起因: 1.

自己用vs

(剛換win7

)編譯好的程式在其他人那裡無法執行,提示缺少

mfc庫; 2.

上面的問題好解決,用靜態

mfc方式重新發布,卻發現原本

200多

k的程式變成了

1m多。 3.

之前使用

vc6.0

(原來是

winxp

)開發的程式從來沒有出過

1中的問題,故使用

vc6.0

以動態mfc

庫的方式對程式進行編譯,在其他器機上正常執行,問題出在**? 在用

vs(vc6.0

之後版本)編譯器對

mfc專案進行編譯時,如果使用的是

mfc動態鏈結的方式,可執行程式是無法在沒有裝有開發環境的機器上執行,彈出與「無法找到

mfcxx.dll

」相似的

mfc庫檔案不存在的錯誤提示對話方塊;然而這樣的問題在

vc6.0

編譯後的可執行程式上不存在。

經過對剛裝完的

windows

系統的windows/system32

目錄下的動態庫進行分析後可以看到,系統中初始就包括

mfc42.dll

檔案,這個檔案就是

vc6.0

使用的mfc

動態庫(可參見

mfc的版本更新,從中也可以看到

mfc42.dll

是從98

之後就包含在系統中了)。

windows xp sp2

系統中的

mfc庫檔案

windows 7

系統中的

mfc庫檔案

如果以靜態的方式進行編譯

mfc應用程式的話,可執行程式(

.exe

)檔案大小會是動態鏈結的好幾倍!所以說,如果不想使發布的程式體積過大,並且程式沒有使用到新版

mfc中的功能的話(就像改鍵工具),最好使用

vc6.0

以動態dll

方式進行編譯。

版本更新

新產品版本

mfc版本

microsoft c/c++ 7.0 mfc 1.0

visual c++ 1.0 mfc 2.0

visual c++ 1.5 mfc 2.5

visual c++ 2.0 mfc 3.0

visual c++ 2.1 mfc 3.1

visual c++ 2.2 mfc 3.2

visual c++ 4.0 mfc 4.0 (

mfc40.dll

included with windows 95)

visual c++ 4.1 mfc 4.1

visual c++ 4.2 mfc 4.2 (

mfc42.dll

included with thewindows 98original release)

embedded visual c++ 3.0 mfc 4.2 (mfc42.dll)

visual c++ 5.0 mfc 4.21 (mfc42.dll)

visual c++ 6.0 mfc 6.0 (mfc42.dll)

embedded visual c++ 4.0 none

visual c++ .net 2002 mfc 7.0 (

mfc70.dll

) visual c++ .net 2003 mfc 7.1 (

mfc71.dll

) visual c++ 2005 mfc 8.0 (mfc80.dll)

visual c++ 2008 mfc 9.0.21022 (mfc90.dll)

visual c++ 2008 with feature pack mfc 9.0.30411 (mfc90.dll)

VC6 0 編譯器BUG修正收集

1.error spawning bscmake.exe 解決 project,setting,browse info,去掉選項build browse info file 2.fatal error lnk1210 exceeded internal ilk size limit relink w...

VC6 0編譯器的一些options

進行編譯,就能生成乙個簡單的hello.exe檔案。其實這個可執行檔案的產生需要呼叫兩個程式 cl.exe和link.exe。先看一看cl.exe的options nologo mld w3 gm gx zi od d win32 d debug d windows d mbcs fp debug ...

CG編譯器與VC6 0整合方法

文章 第一部分 第一部分 1 把 cg檔案加到你的工程中去。2 滑鼠右鍵單擊工作區中該cg檔名,在彈出選單中選擇setings.將會出現project settings對話方塊。3 選擇coustom buid屬性頁,把下面一行複製到commands文字框中 cg bin path cgc.exe ...