轉(zhuǎn)帖|使用教程|編輯:鮑佳佳|2020-12-09 10:16:57.390|閱讀 790 次
概述:在上一講中為大家演示了如何利用應(yīng)用程序向?qū)?chuàng)建單文檔應(yīng)用程序框架。這一節(jié)將以上一講中生成應(yīng)用程序HelloWorld的文件結(jié)構(gòu)為例,講解VS2010應(yīng)用程序工程中文件的組成結(jié)構(gòu)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在上一講中為大家演示了如何利用應(yīng)用程序向?qū)?chuàng)建單文檔應(yīng)用程序框架。這一節(jié)將以上一講中生成應(yīng)用程序HelloWorld的文件結(jié)構(gòu)為例,講解VS2010應(yīng)用程序工程中文件的組成結(jié)構(gòu)。
用應(yīng)用程序向?qū)煽蚣艹绦蚝螅覀兛梢栽谥霸O(shè)置的Location下看到以解決方案名命名的文件夾,此文件夾中包含了幾個(gè)文件和一個(gè)以工程名命名的子文件夾,這個(gè)子文件夾中又包含了若干個(gè)文件和一個(gè)res文件夾,創(chuàng)建工程時(shí)的選項(xiàng)不同,工程文件夾下的文件可能也會(huì)有所不同。
如果已經(jīng)以Debug方式編譯鏈接過程序,則會(huì)在解決方案文件夾下和工程子文件夾下各有一個(gè)名為“Debug”的文件夾,而如果是Release方式編譯則會(huì)有名為“Release”的文件夾。這兩種編譯方式將產(chǎn)生兩種不同版本的可執(zhí)行程序:Debug版本和Release版本。Debug版本的可執(zhí)行文件中包含了用于調(diào)試的信息和代碼,而Release版本則沒有調(diào)試信息,不能進(jìn)行調(diào)試,但可執(zhí)行文件比較小。
我將所有文件分為6個(gè)部分:解決方案相關(guān)文件、工程相關(guān)文件、應(yīng)用程序頭文件和源文件、資源文件、預(yù)編譯頭文件和編譯鏈接生成文件。
1.解決方案相關(guān)文件
解決方案相關(guān)文件包括解決方案文件夾下的.sdf文件、.sln文件、.suo文件和ipch文件夾。
.sdf文件和ipch目錄一般占用空間比較大,幾十兆甚至上百兆,與智能提示、錯(cuò)誤提示、代碼恢復(fù)和團(tuán)隊(duì)本地倉庫等相關(guān)。如果你覺得不需要?jiǎng)t可以設(shè)置不生成它們,方法是點(diǎn)擊菜單欄Tools->Options,彈出Options對(duì)話框,選擇左側(cè)面板中Text Editor->C/C++->Advanced,右側(cè)列表中第一項(xiàng)Disable Database由False改為True就可以了,最后關(guān)閉VS2010再刪除.sdf文件和ipch目錄以后就不會(huì)再產(chǎn)生了。但關(guān)閉此選項(xiàng)以后也會(huì)有很多不便,例如寫程序時(shí)的智能提示沒有了。
.sln文件和.suo文件為MFC自動(dòng)生成的解決方案文件,它包含當(dāng)前解決方案中的工程信息,存儲(chǔ)解決方案的設(shè)置。
2.工程相關(guān)文件
工程相關(guān)文件包括工程文件夾下的.vcxproj文件和.vcxproj.filters文件。
.vcxproj文件是MFC生成的工程文件,它包含當(dāng)前工程的設(shè)置和工程所包含的文件等信息。.vcxproj.filters文件存放工程的虛擬目錄信息,也就是在解決方案瀏覽器中的目錄結(jié)構(gòu)信息。Xtreme Toolkit Pro是屢獲殊榮的VC界面庫,是MFC開發(fā)中最全面界面控件套包,它提供了Windows開發(fā)所需要的11種主流的Visual C++ MFC控件
3.應(yīng)用程序頭文件和源文件
應(yīng)用程序向?qū)?huì)根據(jù)應(yīng)用程序的類型(單文檔、多文檔或基于對(duì)話框的程序)自動(dòng)生成一些頭文件和源文件,這些文件是工程的主體部分,用于實(shí)現(xiàn)主框架、文檔、視圖等。雞啄米下面分別簡單介紹下各個(gè)文件:
HelloWorld.h:應(yīng)用程序的主頭文件。主要包含由CWinAppEx類派生的CHelloWorldApp類的聲明,以及CHelloWorldApp類的全局對(duì)象theApp的聲明。
HelloWorld.cpp:應(yīng)用程序的主源文件。主要包含CHelloWorldApp類的實(shí)現(xiàn),CHelloWorldApp類的全局對(duì)象theApp的定義等。
MainFrm.h和MainFrm.cpp:通過這兩個(gè)文件從CFrameWndEx類派生出CMainFrame類,用于創(chuàng)建主框架、菜單欄、工具欄和狀態(tài)欄等。
HelloWorldDoc.h和HelloWorldDoc.cpp:這兩個(gè)文件從CDocument類派生出文檔類CHelloWorldDoc,包含一些用來初始化文檔、串行化(保存和裝入)文檔和調(diào)試的成員函數(shù)。
HelloWorldView.h和HelloWorldView.cpp:它們從CView類派生出名為CHelloWorldView的視圖類,用來顯示和打印文檔數(shù)據(jù),包含了一些繪圖和用于調(diào)試的成員函數(shù)。
ClassView.h和ClassView.cpp:由CDockablePane類派生出CClassView類,用于實(shí)現(xiàn)應(yīng)用程序界面左側(cè)面板上的Class View。
FileView.h和FileView.cpp:由CDockablePane類派生出CFileView類,用于實(shí)現(xiàn)應(yīng)用程序界面左側(cè)面板上的File View。
OutputWnd.h和OutputWnd.cpp:由CDockablePane類派生出COutputWnd類,用于實(shí)現(xiàn)應(yīng)用程序界面下側(cè)面板Output。
PropertiesWnd.h和PropertiesWnd.cpp:由CDockablePane類派生出CPropertiesWnd類,用于實(shí)現(xiàn)應(yīng)用程序界面右側(cè)面板Properties。
ViewTree.h和ViewTree.cpp:由CTreeCtrl類派生出CViewTree類,用于實(shí)現(xiàn)出現(xiàn)在ClassView和FileView等中的樹視圖。
4.資源文件
一般我們使用MFC生成窗口程序都會(huì)有對(duì)話框、圖標(biāo)、菜單等資源,應(yīng)用程序向?qū)?huì)生成資源相關(guān)文件:res目錄、HelloWorld.rc文件和Resource.h文件。
res目錄:工程文件夾下的res目錄中含有應(yīng)用程序默認(rèn)圖標(biāo)、工具欄使用圖標(biāo)等圖標(biāo)文件。
HelloWorld.rc:包含默認(rèn)菜單定義、字符串表和加速鍵表,指定了默認(rèn)的About對(duì)話框和應(yīng)用程序默認(rèn)圖標(biāo)文件等。
Resource.h:含有各種資源的ID定義。
5.預(yù)編譯頭文件
幾乎所有的MFC程序的文件都要包含afxwin.h等文件,如果每次都編譯一次則會(huì)大大減慢編譯速度。所以把常用的MFC頭文件都放到了stdafx.h文件中,然后由stdafx.cpp包含stdafx.h文件,編譯器對(duì)stdafx.cpp只編譯一次,并生成編譯之后的預(yù)編譯頭HelloWorld.pch,大大提高了編譯效率。
6.編譯鏈接生成文件
如果是Debug方式編譯,則會(huì)在解決方案文件夾和工程文件夾下都生成Debug子文件夾,而如果是Release方式編譯則生成Release子文件夾。
工程文件夾下的Debug或Release子文件夾中包含了編譯鏈接時(shí)產(chǎn)生的中間文件,解決方案文件夾下的Debug或Release子文件夾中主要包含有應(yīng)用程序的可執(zhí)行文件。
關(guān)于應(yīng)用程序工程文件的組成結(jié)構(gòu)雞啄米就先講到這了。其中包含了很多專有名詞,以后大家會(huì)慢慢熟悉的。
本文轉(zhuǎn)載自:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn