2010年4月19日 星期一

請問如何於BCB中編譯MFC?=>remark controls.h windows.h exception

請問如何於BCB中編譯MFC?



回饋點數 :
更改我的閱讀文章字型大小
作者 : brandony(brandony)
[ 貼文 30 | 人氣 2101 | 評價 0 | 送出評價 0 次 ]
[ 回應本文 ] [ 發表新文 ] [ 給予評價 ] [ 給予評價 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2001/12/26 下午 04:44:55
我已將 advanced compiler 的 MFC compatibility 選項打勾了,
但是還是會出現錯誤訊息:
[C++ Error] STDAFX.H(15): E2209 Unable to open include file 'afxwin.h'
[C++ Error] STDAFX.H(16): E2209 Unable to open include file 'afxext.h'
[C++ Error] STDAFX.H(17): E2209 Unable to open include file 'afxdisp.h'
作者 : coldstar(coldstar)
[ 貼文 2 | 人氣 36 | 評價 0 | 送出評價 0 次 ]
[ 回應本文 ] [ 發表新文 ] [ 給予評價 ] [ 給予評價 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/1/4 下午 03:07:14
這個問題目前我也遇到了,在網路上找到不少方法,但都行不通,好奇怪!後來自己試了許久,綜合各家的說法,總算得到一個可行方案。

我的開發環境為C++ Builder 6.0

解決步驟如下:
1.) 設定Project Options

1.1.) 勾選Compiler頁面的"Treat enum types as ints"。
如果沒有將這個選項打勾,會造成enum宣告的變數sizeof的結果大小不一,有可能會造成與Microsoft Libraries提供的APIs參數傳遞時,產生記憶體存取錯誤。

1.2.) 勾選Advanced Compiler頁面的"MFC compatibility"。
這是為了要能夠與MFC相容。

2.) Include你所需要的MFC Header Files。
通常這些Header Files要Include在之前,不然會出現"WINDOWS.H already included. MFC apps must not #include "的錯誤訊息。

3.) 在Project中加入nafxcwd.lib。
這個Library可以在"C:\Program Files\Borland\CBuilder6\Lib"目錄中找到。如果你Builder安裝目錄與我不同的話,請用您自己的目錄唷!

4.) 大致上這樣應該就可以使用MFC的功能了吧!

注意事項:
1.) nafxcwd.lib為static Library,所以使用這種方式會產生靜態連結。如果要使用動態連結…呃…Sorry,我還沒有找到方案!:P
作者 : maxie(Maxie)
[ 貼文 6 | 人氣 178 | 評價 0 | 送出評價 0 次 ]
[ 回應本文 ] [ 發表新文 ] [ 給予評價 ] [ 給予評價 ] [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/12/20 下午 09:56:28
>2.) Include你所需要的MFC Header Files。
>通常這些Header Files要Include在之前,不然會出現'WINDOWS.H already included. MFC apps must not #include '的錯誤訊息。
>
請問你引入了哪些標頭檔?我使用afxwin.h會出現許多的warning與兩個error,這兩個雖可mark掉,但其他的warning其訊息大多為其create函式內含有虛擬函數,這該如何解決?

>4.) 大致上這樣應該就可以使用MFC的功能了吧!

我的library path還得加上 $(BCB)\lib\PSDK

沒有留言:

張貼留言