VS2010/MFC編程入門之三(VS2010應用程序工程中文件的組成結構


這一節將以上一講中生成應用程序HelloWorld的文件結構爲例,講解VS2010應用程序工程中文件的組成結構。 html

       用應用程序嚮導生成框架程序後,咱們能夠在以前設置的Location下看到以解決方案名命名的文件夾,此文件夾中包含了幾個文件和一個以工程名命名的子文件夾,這個子文件夾中又包含了若干個文件和一個res文件夾,建立工程時的選項不一樣,工程文件夾下的文件可能也會有所不一樣。 瀏覽器

       若是已經以Debug方式編譯連接過程序,則會在解決方案文件夾下和工程子文件夾下各有一個名爲「Debug」的文件夾,而若是是Release方式編譯則會有名爲「Release」的文件夾。這兩種編譯方式將產生兩種不一樣版本的可執行程序:Debug版本和Release版本。Debug版本的可執行文件中包含了用於調試的信息和代碼,而Release版本則沒有調試信息,不能進行調試,但可執行文件比較小。 框架

 


1.解決方案相關文件 函數

 

       全部文件分爲6個部分:解決方案相關文件、工程相關文件、應用程序頭文件和源文件、資源文件、預編譯頭文件和編譯連接生成文件。 工具

 


解決方案相關文件包括解決方案文件夾下的.sdf文件、.sln文件、.suo文件和ipch文件夾。 調試

       .sdf文件和ipch目錄通常佔用空間比較大,幾十兆甚至上百兆,與智能提示、錯誤提示、代碼恢復和團隊本地倉庫等相關。若是你以爲不須要則能夠設置不生成它們,方法是點擊菜單欄Tools->Options,彈出Options對話框,選擇左側面板中Text Editor->C/C++->Advanced,右側列表中第一項Disable Database由False改成True就能夠了,最後關閉VS2010再刪除.sdf文件和ipch目錄之後就不會再產生了。但關閉此選項之後也會有不少不便,例如寫程序時的智能提示沒有了。 htm

       .sln文件和.suo文件爲MFC自動生成的解決方案文件,它包含當前解決方案中的工程信息,存儲解決方案的設置。 對象

       2.工程相關文件 ip

       工程相關文件包括工程文件夾下的.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子文件夾中主要包含有應用程序的可執行文件。

      

 


 


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子文件夾中主要包含有應用程序的可執行文件。

       關於應用程序工程文件的組成結構雞啄米就先講到這了。其中包含了不少專有名詞,之後你們會慢慢熟悉的。歡迎來雞啄米博客交流。謝謝。
本文來源於雞啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/143.html

 

 

 

 


 


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自動生成的解決方案文件,它包含當前解決方案中的工程信息,存儲解決方案的設置。
本文來源於雞啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/143.html

相關文章
相關標籤/搜索