一.VC++與MFC
講VC++免不了要提MFC,MFC全稱Microsoft Foundation Classes,也就是微軟基礎類庫。它是VC++的核心,是C++與Windows API的結合,很徹底的用C++封裝了Windows SDK(Software Development Kit,軟件開發工具包)中的結構和功能,還提供了一個應用程序框架,此應用程序框架為軟件開發者完成了一些例行化的工作,比如各種窗口、工具欄、菜單的生成和管理等,不需要開發者再去解決那些很復雜很乏味的難題,比如每個窗口都要使用Windows API注冊、生成與管理。這樣就大大減少了軟件開發者的工作量,提高了開發效率。
當然VC++不是只能夠創建MFC應用程序,同樣也能夠進行Windows SDK編程,但是那樣的話就舍棄了VC++的核心,放棄了VC++最強大的部分。MFC也不是只能用於VC++中,它同樣也可以用在Borland C++等編譯器中,當然沒有幾個人這樣做。
二.使用VS2010應用程序向導生成單文檔應用程序框架
1.點菜單欄File->New->Project,彈出New Project對話框,我們可以選擇工程類型。
如果安裝完VS2010以后第一啟動時已經設置為VC++,則Installed Templates->Visual C++項會默認展開,而如果沒有設置VC++,則可以展開到Installed Templates->Other Languages->Visual C++項。
因為我們要生成的是MFC程序,所以在“Visual C++”下選擇“MFC”,對話框中間區域會出現三個選項:MFC ActiveX Control、MFC Application和MFC DLL。MFC ActiveX Control用來生成MFC ActiveX控件程序。MFC Application用來生成MFC應用程序。MFC DLL用來生成MFC動態鏈接庫程序。當然我們要選擇MFC Application。
在對話框下部有Name、Location和Solution name三個設置項。意義如下:Name--工程名,Location--解決方案路徑,Solution name--解決方案名稱。這里Name我們設為“HelloWorld”,Location設置為“桌面”的路徑,Solution name默認和Name一樣,當然可以修改為其他名字,這里我們不作修改,也使用“HelloWorld”。
點“OK”按鈕。
2.這時會彈出“MFC Application Wizard”對話框,上部寫有“Welcome to the MFC Application Wizard”,下面顯示了當前工程的默認設置。第一條“Tabbed multiple document interface (MDI)”是說此工程是多文檔應用程序。如果這時直接點下面的“Finish”按鈕,可生成具有上面列出設置的多文檔程序。但我們此例是要建立單文檔應用程序,所以點“Next”按鈕再繼續設置吧。
3.接下來彈出的對話框上部寫有“Application Type”,當然是讓選擇應用程序類型,我們看到有四種類型:Single document(單文檔)、Multiple documents(多文檔)、Dialog based(基於對話框)和Multiple top-level documents。我們選擇Single document類型,以生成一個單文檔應用程序框架。單文檔應用程序運行時是一個單窗口界面。
此對話框的“Resource language”還提供語言的選擇。
“Project style”可選擇工程風格,我們選擇默認的“Visual Studio”風格。
“Use of MFC”有兩個選項:Use MFC in a shared DLL(動態鏈接庫方式使用MFC)和Use MFC in a static library(靜態庫方式使用MFC)。選擇Use MFC in a shared DLL時MFC的類會以動態鏈接庫的方式訪問,所以我們的應用程序本身就會小些,但是發布應用程序時必須同時添加必要的動態鏈接庫,以便在沒有安裝VS2010的機子上能夠正常運行程序。選擇Use MFC in a static library時MFC的類會編譯到可執行文件中,所以應用程序的可執行文件要比上種方式大,但可以單獨發布,不需另加包含MFC類的庫。這里我們使用默認的Use MFC in a shared DLL。
點“Next”按鈕。
4.此時彈出上部寫有“Compound Document Support”的對話框,可以通過它向應用程序加入OLE支持,指定OLE選項的復合文檔類型。本例不需要OLE特性,使用默認值“None”。點“Next”按鈕。
5.彈出的新對話框上部寫有“Document Template Properties”。“File extension”可以設置程序能處理的文件的擴展名。對話框其他選項還可以更改程序窗口的標題。我們都使用默認設置,點“Next”按鈕。
6.此時彈出的對話框主題是“Database Support”。用於設置數據庫選項。此向導可以生成數據庫應用程序需要的代碼。它有四個選項:
None:忽略所有的數據庫支持;
Header files only:只包含定義了數據庫類的頭文件,但不生成對應特定表的數據庫類或視圖類;
Database view without file support:創建對應指定表的一個數據庫類和一個視圖類,不附加標准文件支持;
Database view with file support:創建對應指定表的一個數據庫類和一個視圖類,並附加標准文件支持。
本例選擇默認值“None”,不使用數據庫特性。點“Next”按鈕。
7.這時彈出的對話框是關於“User Interface Features”,即用戶界面特性。我們可以設置有無最大化按鈕、最小化按鈕、系統菜單和初始狀態欄等。還可以選擇使用菜單欄和工具欄生成簡單的應用程序還是使用ribbon。這里我們都選擇默認設置。點“Next”進入下一步。
8.此時彈出“高級特性”對話框。可以設置的高級特性包括有無打印和打印預覽等。在“Number of files on recent file list”項可以設置在程序界面的文件菜單下面最近打開文件的個數。我們仍使用默認值。點“Next”按鈕。
9.彈出“生成類”對話框。在對話框上部的“生成類”列表框內,列出了將要生成的4 個類:一個視圖類(CHelloWorldView)、一個應用類(CHelloWorldApp)、一個文檔類(CHelloWorldDoc)和一個主框架窗口類(CMainFrame)。在對話框下面的幾個編輯框中,可以修改默認的類名、類的頭文件名和源文件名。對於視圖類,還可以修改其基類名稱,默認的基類是CView,還有其他幾個基類可以選擇。這里我們還是使用默認設置。點“Finish”按鈕。
應用程序向導最后為我們生成了應用程序框架,並在Solution Explorer中自動打開了解決方案。
三、編譯運行生成的程序
點菜單中的Build->Build HelloWorld編譯程序,然后點Debug->Start Without Debugging(快捷鍵Ctrl+F5)運行程序,也可以直接點Debug->Start Without Debugging,這時會彈出對話框提示是否編譯,選擇“Yes”,VS2010將自動編譯鏈接運行HelloWorld程序。
嗯……生成helloworld時出現error了: 1>LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞
解決方法:
方案1:
點擊“項目”-->“屬性” --> “清單工具”,
然后選擇"輸入和輸出’ --> ‘嵌入清單’,將后面的‘是’改成‘否’就可以了
方案2:在VS安裝目錄搜索cvtres.exe
發現有兩個cvtres.exe文件,有的網友選擇用最新的文件覆蓋掉所有舊的cvtres.exe,
也有網友是刪除舊cvtres.exe的文件。我是將舊 cvtres.exe 改名字了,以備恢復環境。
注意這兩個文件都是一個版本號,但是生成時間只是相差1個小時,選擇最新的那個。
也有搜索到好多cvtres.exe的 情況,這個就不清楚了,試試如何刪除這些文件吧。
我的兩個文件目錄如下:
D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin 參考:https://zhidao.baidu.com/question/1493935034926540979.html
我這邊試了方案2后成功了。
然后運行,結果頁面如下所示:
轉自:http://www.jizhuomi.com/software/141.html