當(dāng)我們用Application Wizard生成一個新的項目時,MFC會自動為我們產(chǎn)生不少的程序文件,那么這些文件都是干什么用的呢?在這里,我把它們向大家介紹一下,希望對一些初學(xué)VC的朋友有些幫助,老鳥們就不用浪費時間了,呵呵!
其實生成項目完成之后,我們會在項目目錄里面發(fā)現(xiàn)一個readme.txt文件,項目所生成的程序文件在這里都有介紹,不過一般都是英文的。Application Wizard產(chǎn)生項目的同時,也展現(xiàn)了MFC機制為我們打下的程序框架,更為我們提供了用以擴展的程序。 依據(jù)不同的選項,產(chǎn)生的文件也有所不同,以下是Application Wizard產(chǎn)生的標(biāo)準(zhǔn)程序文件(假設(shè)項目名稱為ExMFC),大致可以分為以下幾類: · 工作區(qū)文件、項目文件和make文件 · 應(yīng)用程序源文件和頭文件 · 資源文件 · 預(yù)編譯頭文件 · 按可選項增加的AppWizard文件 工作區(qū)、項目文件和make文件 ExMFC.dsp — 這是MFC生成的項目文件,它包含當(dāng)前項目的設(shè)置、所包含的文件等信息。 ExMFC.dsw — 這是MFC自動生成的工作區(qū)文件,它包含當(dāng)前工作區(qū)所包含的項目的信息。 ExMFC.MAK — 這是MFC項目的項目文件,這也是與NMAKE兼容的文件。如果選擇了External make文件可選項,則可人工對它編輯,但不能利用Visual C++許多項目編輯特性。 ExMFC.clw — 這個文件含有被ClassWizard用來編輯現(xiàn)有類或增加新類的信息。ClassWizard還用這個文件來保存創(chuàng)建和編輯消息映射和對話框數(shù)據(jù)所需的信息,或是創(chuàng)建虛擬成員函數(shù)所需的信息。 應(yīng)用程序源文件和頭文件 ExMFC.h — 這是應(yīng)用程序的主頭文件,它含有所有全局符號和用于包含其它頭文件的#include偽指令。 ExMFC.cpp — 這個文件是應(yīng)用程序的主源文件。它將創(chuàng)建CExMFCApp類的一個對象(從CWinApp派生),并覆蓋InitInstance成員函數(shù)。 MainFrm.h,MainFrm.cpp — 這兩個文件將從CFrameWnd(SDI應(yīng)用程序)或CMDIFrameWnd(MDI應(yīng)用程序)派生CMainFrame類。如果在AppWizard的Application Options頁(6步中的第4步)中選擇了對應(yīng)的可選項的話,CMainFrame類將處理工具條按鈕和狀態(tài)條的創(chuàng)建。MAINFRM.CPP文件還含有MFC應(yīng)用程序提供的默認(rèn)工具條按鈕的對象ID——叫做buttons數(shù)組。 ExMFCDoc.h,ExMFCDoc.cpp — 這些文件從CDocument類派生并實現(xiàn)名為CExMFCDoc的文檔類,并含有用于初始化文檔、串行化(保存和裝入)文檔和用于調(diào)試診斷的一些成員函數(shù)的框架。 ExMFCView.h,ExMFCView.cpp — 這些文件派生并實現(xiàn)名為CExMFCView的視類,用于顯示和打印文檔數(shù)據(jù)。CHelloView類是從CView或它的派生類派生出來的,含有繪制視和用于調(diào)試診斷的一些成員函數(shù)框架。 資源文件 ExMFC.rc, Resource.h, ExMFC.rc2 —這是項目的頭文件及其資源文件。資源文件含有一般MFC應(yīng)用程序的默認(rèn)菜單定義和加速鍵表、字符串表。它還指定了缺省的About對話框和一個圖標(biāo)文件(res"ExMFC.ico)。資源文件了標(biāo)準(zhǔn)的MFC類的資源。如果指定了支持工具條,它還將指定工具條位圖文件(RES"TOOLBAR.BMP)。ExMFC.rc2用于存放Visual Studio不可直接編輯的資源。 預(yù)編譯頭文件:STDAFX.CPP,STDAFX.H 這兩個文件用于建立一個預(yù)編譯的頭文件ExMFC.PCH和一個預(yù)定義的類型文件STDAFX.OBJ。由于MFC體系結(jié)構(gòu)非常大,包含許多頭文件,如果每次都編譯的話比較費時。因此,我們把常用的MFC頭文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h等,然后讓stdafx.cpp包含這個stdafx.h文件。這樣,由于編譯器可以識別哪些文件已經(jīng)編譯過,所以stdafx.cpp就只編譯一次,并生成所謂的預(yù)編譯頭文件(因為它存放的是頭文件編譯后的信息,故名)。如果讀者以后在編程時不想讓有些MFC頭文件每次都被編譯,也可以將它加入到stdafx.h中。采用預(yù)編譯頭文件可以加速編譯過程。 好了,到現(xiàn)在你可能對AppWizard產(chǎn)生的程序文件有了一個很好的了解了,剩下的就是添加自己要完成特定功能的東西了。 分類: 02 C#/.NET |
|