由于MFC中的輔助類心赶,如 CFileDialog,CFileFind,CString等使用起來非常的方便如果用API來完成相應(yīng)的工作桨昙,則需要自己完成大量的重復(fù)工作馁启,使用 MFC的輔助類可以節(jié)省大量的開發(fā)時間廓块,具體方法如下: 1.加入相應(yīng)的頭文件?
由于在SDK程序中一定要包含windows.h頭文件亏钩,所以 在使用MFC中的類時,如加入afx.h一類的頭文件會有一個提示與windows.h相沖突捧毛,解決的辦法是观堂,去掉windows.h,然后在所有的.h 文件前加入#include "stdafx.h"?
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include <afxwin.h> // MFC core and standard components #include <afxext.h> // MFC extensions?
#include <afxdisp.h> // MFC Automation classes?
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT?
#include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT?
注意一定要在所有的頭文件之前加入這幾行呀忧,而起順序最好不要改 變师痕,否則會有大量的錯誤提示。 2.更改編譯設(shè)置?
在Project->Setting->General中選Use MFC in a Shared DLL或者Use MFC in static Library而账,并把project->Setting->C/C++ 中的Use runing-time library 由Single-Threaded改為相應(yīng)的Multithreaded胰坟。?
\ ? ? ??
法二:?
如何讓W(xué)IN32應(yīng)用程序支持MFC類庫 ??
2011-09-16 15:03:06| ?分類: 編程專欄 | ?標(biāo)簽:win32 ?應(yīng)用程序 ?mfc ?類庫 ?配置 ?|字號 訂閱?
? ? ? ?我們在調(diào)用一個控制臺程序時一直都有DOS黑框閃爍一下,很多時候我們都不希望出現(xiàn)那個黑框福扬,因?yàn)槟菢咏o人感覺特別不好腕铸,但是如果是控制臺程序的話又是無法避免的惜犀。那是不是就沒辦法了呢,當(dāng)然不是狠裹,我們可以選擇在VS中制作Win32應(yīng)用程序來解決虽界,它雖然是窗口程序,但是我們可將窗口隱藏掉就不會像之前有閃爍的現(xiàn)象涛菠,但是默認(rèn)生成的
Win32應(yīng)用程序又不能使用MFC類庫莉御,給我們編程造成不便,下面我就來教大家怎樣在WIN32應(yīng)用程序中支持MFC類庫的方法俗冻,讓我們接著開始吧! ?
首先礁叔,在文件中加入如下頭文件語句: #ifndef VC_EXTRALEAN?
#define VC_EXTRALEAN ? ? ? ?// 從 Windows 頭中排除極少使用的資料 #endif ?
#include <afx.h>?
#include <afxwin.h> ? ? ? ? // MFC 核心組件和標(biāo)準(zhǔn)組件 #include <afxext.h> ? ? ? ? // MFC 擴(kuò)展 ?
上面這段代碼可以放在預(yù)編譯頭文件stdafx.h中,位置自己可定 ?
然后在_tWinMain的開始加入 ?
?if (!AfxWinInit(hInstance, NULL, lpCmdLine, 0)) ?{?
? ?MessageBox(NULL,_T("MFC init error!"),_T("Error!"),MB_OK); ? ?return 0; ?} ?
然后在菜單中依次選擇"項(xiàng)目->屬性->配置屬性->常規(guī)->MFC的使用"中選擇"在共享DLL中使用MFC"迄薄;?
然后再在菜單中依次選擇"項(xiàng)目->屬性->配置屬性->鏈接器->常規(guī)->附加庫目錄"中加入"kernel32.lib user32.lib gdi32.lib",中間以空格隔開琅关; 如果編譯時出現(xiàn)下面錯誤:?
fatal error C1189: #error : ?WINDOWS.H already included. ?MFC apps must not #include <windows.h>?
那么我們在預(yù)編譯頭文件stdafx.h中將"#include <windows.h>"刪掉或者注釋掉即可. 至此一切OK,然后你就可以用MFC類了讥蔽。 ??
? ? ?說明:雖然我們可以建立MFC應(yīng)用程序然后隱藏窗口來解決這個問題涣易,但是這樣生成的EXE文件的大小要比前面兩者都大,因?yàn)樗虞d了很多我們用不著的資源冶伞,從而造成了浪費(fèi)新症。