成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度說明VS2003 MFC程序框架

開發 后端
前些日子一直想寫關于VS2003 MFC這個東西,做了一個開頭放在我的主頁上(但是名為<MFC框架程序WINMAIN函數分析>,到后來就沒有再管了,其實那只是我寫的冰山一腳。

希望我對VS2003 MFC一點經驗能給大家帶來幫助,在這里拿出來和大家分享一下。VS2003 MFC經過長時間的發展,很多用戶都很了解VS2003 MFC了,這里我發表一下個人理解,和大家討論討論。

說明:

1、本文作者在VS2003中跟蹤代碼,此代碼為VS2003中拷貝,使用MFC7。
2、不同框架的MFC程序由所不同,本文以單文檔為例。
3、本文讀者需要有一定的SDK的基礎,不需要太多,至少知道它的基本框架和來龍去脈即可!
4、文章只想起到說明作用,所以代碼會有一些刪除。

學MFC,竟然還不知道MFC的MAIN函數在什么地方?怎么運行的?實在不高明。
看過候捷(JJHOU)老師的《深入淺出MFC》的,對它一定很熟悉。呵呵,本文是獻給沒有看過那本書,但是又很希望學習MFC程序設計的朋友的。(沒有看過那本書的朋友還不趕快去買?)其實本文,主要是對《深入淺出MFC》第六章的一個總結和補充罷了!(本文有該書不同的地方,也有一些筆者自己的見解!)
言歸正傳。

假如你用AppWizard一步一步NEXT下來,然后在CLASSVIEW中去找尋WINMAIN函數,那么你只有失望。MFC最大的特點是什么?封裝!MFC的確封裝的太好了,以至于很多想學習MFC的人都望而卻步。閑話少說,還是繼續我們今天的話題,MAIN函數!實話告訴你吧,即使你搜索所有的MFC生成的文件,都無法發現WINMAIN的字眼,那么它就近在什么地方呢?

我相信你已經想到,MAIN函數應該在主要的應用程序文件中。難道是“您定義的程序名.cpp”這個文件?不錯就是它。再Crtl+F一下,看有沒有我們要找的WINMAIN函數?看來你又要失望了,但是你注意有這樣一句:

是不是很特別,再注意一下那句注釋“TheoneandonlyCMyAppobject”,每個應用程序有且只用一個CMyApp對象。我想你應該想到了,WinMain函數每個程序也只能有一個,那么這個全局對象跟WinMain函數肯定有莫大的關系?沒錯,相信你的直覺。#t#

特別注意:深曉C++細節的人一定知道,全局對象優先于MAIN函數執行的道理。如果你不知道也沒關系,那么我在這里告訴你:“全局對象優先于MIAN函數執行,且構建于棧中,切記,切記!”

現在,我們該深入WinMain運行機制了,確切的說,應該是MFC的機制!
首先,看看MFC的庫文件把,它能給我們帶來許多驚喜。(vc6的相應的目錄是\MicrosoftVisualStudio\VC98\MFC\SRC;VC7相應的目錄是\MicrosoftVisualStudio.NET2003\Vc7\atlmfc\src\mfc)

現在我們就從這個全局下手,開始今天的旅途。此時,系統會執行CMyApp的父類(CWinApp)構造函數,再執行CMyApp的構造函數。(先有老爹,再有兒子!),此時就會調用CWinApp的構造函數。OK,就到這里就可以了,仔細看上面代碼,它已經完成了應用程序線程額的啟動,它給予了我們程序的生命。現在請注意:

這段代碼的意思是,獲得了CMyApp的全局對象的this指針。(此時你肯定要疑問,為什么是CMyApp的指針?this目前是在CWinApp中啊?   對此我的答案是,可是你是由CMyApp的對象引發的CWinApp的構造啊!!)這個指針可非一般的人物,稍后我們的很多工作都要靠它完成。

CWinApp之中的成員變量將因為theApp這個全局對象的誕生而獲得配置和初始值。構造完父類,現在構造子類。可是我們看到,AppWizard給我們的子類里它什么也沒做?是的,這一切都聽從你的安排!

責任編輯:chenqingxiang 來源: NET130
相關推薦

2009-12-11 14:38:06

VS2003安裝程序

2009-11-26 10:02:06

2009-11-25 09:50:06

VS2003程序

2009-12-09 16:52:51

VS 2003插件

2009-12-18 10:10:49

VS 2003程序

2009-12-10 13:11:47

VS2003安裝

2009-12-01 10:54:48

VS2003 英文版

2009-12-01 17:55:11

VS2003配置

2009-11-30 11:25:24

VS2003 UNIC

2009-11-25 11:25:31

VS2003軟件

2009-11-27 09:53:15

VS2003安裝程序

2009-12-09 13:41:04

VS 2003 報錯

2009-11-26 11:05:59

VS2003控件

2009-11-27 09:16:11

VS2003配置文件

2009-11-27 08:59:29

VS2003配置文件

2009-11-30 09:27:38

VS2003源代碼

2009-11-30 13:51:28

2009-12-01 13:10:29

VS2003壓縮代碼

2009-12-15 13:39:43

2009-12-16 10:15:58

VS2003編譯
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 另类二区 | 午夜久久久久久久久久一区二区 | 国产一区二区在线免费播放 | 亚洲天堂999 | 久久久国产精品一区 | 午夜精品久久久 | 99精品一级欧美片免费播放 | 麻豆亚洲| 在线精品国产 | 久久久高清 | 一区二区在线观看av | 久久国 | 欧美特级黄色 | 亚洲欧美日韩久久久 | 亚洲精品成人 | 国产a爽一区二区久久久 | 中文字幕av网 | 热re99久久精品国产99热 | 国产亚洲网站 | 久久中文字幕一区 | 亚洲精品一级 | 国产高清在线精品 | a爱视频 | 精品99久久久久久 | 亚洲视频一区 | 国产精品精品久久久 | 欧美激情va永久在线播放 | 在线观看成人小视频 | 狠狠干五月天 | 久久久久国产一区二区三区 | 中文字幕第十五页 | 一区二区三区四区毛片 | 精品乱人伦一区二区三区 | 欧美精品一区在线观看 | 国产精品a久久久久 | 国产一区二区在线视频 | 精品九九九| 天堂一区 | 黄色片在线网站 | 91在线精品视频 | 久久一|