mfc加速編譯
Ⅰ 什麼是MFC編程
MFC(Microsoft Foundation class)微軟基本類(庫),它是一個面向對象的應用程序架構。程序員利用它可以很方便搭建應用程序框架。
MFC結合了面向對象的編程技術和WINDOWS消息驅動的編程技術,並封裝了WIN32API,其設計好處是:消除了WIN32API的復雜性,封裝了WIN32API,統一了程序的概念,而且可擴展。
MFC實際上是微軟提供的,用於在C++環境下編寫應用程序的一個框架和引擎。VC++是Windows下開發人員使用的專業C++SDK,MFC就是掛在它之上的一個輔助軟體開發包。
(1)mfc加速編譯擴展閱讀
MFC編程優勢
面對底層程序,它能很輕松的與Windows API或驅動程序結合,就是在自己的代碼中直接使用API函數,而API和驅動程序的資料都是以C語言為基礎的,這使得VC程序員能夠更輕松的使用Windows API。
這樣造成了一個很有意思的現象,即入門時VC程序員要付出更多的努力來學習,但是一旦掌握後,開發其他領域的程序或使用第三方軟體時,如工業控制類的程序,由於底層的程序都是用C語言編寫,反倒是VC程序員能夠更快的掌握該領域的編程技術。而很多其他的編程語言甚至找不到相關的資料。
這就說明VC(MFC)實際上是一種入門困難,但是擴展學習卻很輕松的語言框架。
Ⅱ 請問用C#在VS編寫的程序運行快還在vc++用MFC編寫的程序運行的快呢
第一次編譯運行,C++要快,因為它是一次直接編譯成機器指令。
而C#第一次編譯運行要慢些,先編譯成平台無關的CIL代碼,然後由JIT編譯器編譯成本地相關的機器代碼。
但是再運行的話,後來C#就高效了,因為JIT編譯器將CIL代碼便以為相應的本地機器代碼的時候,會用適合目標操作系統的方式將結果存在內存中,以備以後使用,就不用再編譯CIL了。
更重要的是JIT編譯器,Just-In-Time即時編譯器,.NET運行庫環境將使用針對各種不同CPU的JIT編譯器,每個編譯器都會針對底層平台進行優化。
最後,現在的硬體越來越便宜,性能越來越高,一次編譯和二次編譯在速度上已經沒什麼差別了,但是二次編譯的好處太大了,跨平台能力大大提升,一次編譯處處運行。
Ⅲ 我使用vs2005編譯MFC程序,在多線程中創建CSocket類,每當使用Create方法時出錯
其實動態使用在其他計算機上也是可以到,應為win2k以上mfc動態庫windows目錄下也是有的。不是必須要靜態庫。
但是你編譯的必須是release版,應為一般系統不帶debug版本的mfc庫。除非裝了vc.
2.出問題,請把錯誤信息給出,幫你分析,比如編譯錯誤,鏈接錯誤
Ⅳ C++ 中stdafx.h是什麼意思
C++中stdafx.h的英文全稱為:Standard Application Fram Extend,中文名為:頭文件預編譯。
stdafx.h在C++中起到的作用是:把C++工程中使用的MFC頭文件預先編譯,以後該工程編譯時,直接使用預編譯的結果,這樣可以加快編譯速度。
C++編譯器通過一個頭文件stdafx.h來使用預編譯頭文件。stdafx.h這個頭文件名可以在project的編譯設置里指定。
編譯器默認所有在指令"stdafx.h"前的代碼都是預編譯,它跳過 "stdafx. h"指令,使用projectname.pch編譯這條指令之後的代碼。
(4)mfc加速編譯擴展閱讀
Windows和MFC的include文件都非常大,即使有一個快速的處理程序,編譯程序也要花費相當長的時間來完成工作。
由於每個.CPP文件都包含相同的include文件,為每個.CPP文件都重復處理這些文件就顯得很傻了。為避免這種浪費,AppWizard和VisualC++編譯程序一起進行工作,如下所示:
1、AppWizard建立了文件stdafx.h,該文件包含了所有當前工程文件需要MFCinclude 文件。且這一文件可以隨被選擇的選項而變化。
2、AppWizard然後就建立stdafx.cpp。這個文件通常都是一樣的。
3、然後AppWizard就建立起工程文件,這樣第一個被編譯的文件就是stdafx.cpp。
4當VisualC++編譯stdafx.cpp文件時,它將結果保存在一個名為stdafx.pch的文件里。(擴展名pch表示預編譯頭文件。)
5、當VisualC++編譯隨後的每個.cpp文件時,它閱讀並使用它剛生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又編緝了stdafx.cpp或stdafx.h。
Ⅳ MFC程序是怎麼編譯的
mfc已經做成了dll,可以動態鏈接。也有靜態鏈接版本的。