天天看點

VS2010-MFC(VS2010應用程式工程中檔案的組成結構)

轉自:http://www.jizhuomi.com/software/143.html

用應用程式向導生成架構程式後,我們可以在之前設定的Location下看到以解決方案名命名的檔案夾,此檔案夾中包含了幾個檔案和一個以工程名命名的子檔案夾,這個子檔案夾中又包含了若幹個檔案和一個res檔案夾,建立工程時的選項不同,工程檔案夾下的檔案可能也會有所不同。

如果已經以Debug方式編譯連結過程式,則會在解決方案檔案夾下和工程子檔案夾下各有一個名為“Debug”的檔案夾,而如果是Release方式編譯則會有名為“Release”的檔案夾。這兩種編譯方式将産生兩種不同版本的可執行程式:Debug版本和Release版本。Debug版本的可執行檔案中包含了用于調試的資訊和代碼,而Release版本則沒有調試資訊,不能進行調試,但可執行檔案比較小。

現将所有檔案分為6個部分:解決方案相關檔案、工程相關檔案、應用程式頭檔案和源檔案、資源檔案、預編譯頭檔案和編譯連結生成檔案。

       1.解決方案相關檔案

       解決方案相關檔案包括解決方案檔案夾下的.sdf檔案、.sln檔案、.suo檔案和ipch檔案夾。

       .sdf檔案和ipch目錄一般占用空間比較大,幾十兆甚至上百兆,與智能提示、錯誤提示、代碼恢複和團隊本地倉庫等相關。如果你覺得不需要則可以設定不生成它們,方法是點選菜單欄Tools->Options,彈出Options對話框,選擇左側面闆中Text Editor->C/C++->Advanced,右側清單中第一項Disable Database由False改為True就可以了,最後關閉VS2010再删除.sdf檔案和ipch目錄以後就不會再産生了。但關閉此選項以後也會有很多不便,例如寫程式時的智能提示沒有了。

       .sln檔案和.suo檔案為MFC自動生成的解決方案檔案,它包含目前解決方案中的工程資訊,存儲解決方案的設定。

       2.工程相關檔案

       工程相關檔案包括工程檔案夾下的.vcxproj檔案和.vcxproj.filters檔案。

       .vcxproj檔案是MFC生成的工程檔案,它包含目前工程的設定和工程所包含的檔案等資訊。.vcxproj.filters檔案存放工程的虛拟目錄資訊,也就是在解決方案浏覽器中的目錄結構資訊。

       3.應用程式頭檔案和源檔案

       應用程式向導會根據應用程式的類型(單文檔、多文檔或基于對話框的程式)自動生成一些頭檔案和源檔案,這些檔案是工程的主體部分,用于實作主架構、文檔、視圖等。下面分别簡單介紹下各個檔案:

       HelloWorld.h:應用程式的主頭檔案。主要包含由CWinAppEx類派生的CHelloWorldApp類的聲明,以及CHelloWorldApp類的全局對象theApp的聲明。

       HelloWorld.cpp:應用程式的主源檔案。主要包含CHelloWorldApp類的實作,CHelloWorldApp類的全局對象theApp的定義等。

       MainFrm.h和MainFrm.cpp:通過這兩個檔案從CFrameWndEx類派生出CMainFrame類,用于建立主架構、菜單欄、工具欄和狀态欄等。

       HelloWorldDoc.h和HelloWorldDoc.cpp:這兩個檔案從CDocument類派生出文檔類CHelloWorldDoc,包含一些用來初始化文檔、串行化(儲存和裝入)文檔和調試的成員函數。

       HelloWorldView.h和HelloWorldView.cpp:它們從CView類派生出名為CHelloWorldView的視圖類,用來顯示和列印文檔資料,包含了一些繪圖和用于調試的成員函數。

       ClassView.h和ClassView.cpp:由CDockablePane類派生出CClassView類,用于實作應用程式界面左側面闆上的Class View。

       FileView.h和FileView.cpp:由CDockablePane類派生出CFileView類,用于實作應用程式界面左側面闆上的File View。

       OutputWnd.h和OutputWnd.cpp:由CDockablePane類派生出COutputWnd類,用于實作應用程式界面下側面闆Output。

       PropertiesWnd.h和PropertiesWnd.cpp:由CDockablePane類派生出CPropertiesWnd類,用于實作應用程式界面右側面闆Properties。

       ViewTree.h和ViewTree.cpp:由CTreeCtrl類派生出CViewTree類,用于實作出現在ClassView和FileView等中的樹視圖。

       4.資源檔案

       一般我們使用MFC生成視窗程式都會有對話框、圖示、菜單等資源,應用程式向導會生成資源相關檔案:res目錄、HelloWorld.rc檔案和Resource.h檔案。

       res目錄:工程檔案夾下的res目錄中含有應用程式預設圖示、工具欄使用圖示等圖示檔案。

       HelloWorld.rc:包含預設菜單定義、字元串表和加速鍵表,指定了預設的About對話框和應用程式預設圖示檔案等。

       Resource.h:含有各種資源的ID定義。

       5.預編譯頭檔案

       幾乎所有的MFC程式的檔案都要包含afxwin.h等檔案,如果每次都編譯一次則會大大減慢編譯速度。是以把常用的MFC頭檔案都放到了stdafx.h檔案中,然後由stdafx.cpp包含stdafx.h檔案,編譯器對stdafx.cpp隻編譯一次,并生成編譯之後的預編譯頭HelloWorld.pch,大大提高了編譯效率。

       6.編譯連結生成檔案

       如果是Debug方式編譯,則會在解決方案檔案夾和工程檔案夾下都生成Debug子檔案夾,而如果是Release方式編譯則生成Release子檔案夾。

       工程檔案夾下的Debug或Release子檔案夾中包含了編譯連結時産生的中間檔案,解決方案檔案夾下的Debug或Release子檔案夾中主要包含有應用程式的可執行檔案。

轉載于:https://www.cnblogs.com/Tang-tangt/p/9427444.html