如何在 C++ Builder 3.0 下編譯含有 MFC 的程序 ?

如何在 C++ Builder 3.0 下編譯含有 MFC 的程序 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 


雖然說 C++ Builder 3.0 Borland C++ 5.02 的下一個版本,一樣支持 MFC ,但若要在  C++ Builder 3.0 下使用 MFC 並不簡單。不是直接寫個 MFC native Code 並在 Project Option 中再勾選個 MFC Compatibility 這麼簡單,若你只這樣做,保證你在編譯時一定會得到一堆的 Warnning Error

要讓你與 BCB 都能夠輕鬆的編譯 MFC ,我們所必需的就是自己動點手腳,並將這個動過手腳的 Project 檔給放到 Object Repository;之後,你只需要按下選單上的 New 就可以開始你的 MFC in BCB之路了。

Step 1

New 一個新的 Project

Step 2

Project Option裏的 Directories/Conditionals 這一頁的Conditionals/Conditional defines中給加入

_X86_
_WINDOWS
_MSC_VER=1100
_AFX_PORTABLE
_AFX_NOFORCE_LIBS
_MT
_CRT_PORTABLE
_AFX_NO_DEBUG_CRT

這幾個編譯用的參數。
並記得在 include path 加入 $(BCB)/include/MFC 這一項。

Step 3
接着在 Advance Compilers 這一頁裏將 MFC Compatibility 給勾選起來,

Step 4
緊接着,將檔案給存起來,裏用文字編輯器來修改這個 Project 的 bpr 檔。
找到 CFLAG1 = ...... 這一行
將這一行給爲
CFLAG1 = -Od -Hc -w -k -r- -y -v -vi- -c -w-par -w-inl -w-hid -w-aus -g0 -WM -W

再找到 CFLAG3 = ...... 這一行
將這一行給爲
CFLAG3 = -Tkh30000 -VF

最後找到 ALLLIB = .... 這一行
將這一行給爲
ALLLIB = $(LIBFILES) $(LIBRARIES) nafxcw.lib import32.lib cw32mt.lib

接着就是存盤囉!

Step 5
這樣一來,就可以直接在BCB3下享用MFC囉!

不可不知道

在此範例中,所編譯出來的檔案將會是 static link 的版本,並非 dynamic link,要怎麼樣在 BCB 3 下做 dynamic link MFC library 呢?在此先賣個關子,看看 BCB 裏所附上的範例吧!

此外,在 BCB 有很多方式來鏈接 VCL MFC,大致可分爲兩類

1、以   TApplication 爲主體,而程序中混合使用 VCL與 MFC 所提供的其它類,如CDC、CPoint、CFile 等等.....。
2、以 MFC 的 CApp 爲主體,在選單中呼叫 VCL 所組合而成的 Form。

而這兩類要怎麼樣在 BCB 裏完成呢?聰明的讀者,動動您的腦筋想想看吧!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章