自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度說明VS2003 MFC程序框架

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

希望我對VS2003 MFC一點(diǎn)經(jīng)驗(yàn)?zāi)芙o大家?guī)韼椭?,在這里拿出來和大家分享一下。VS2003 MFC經(jīng)過長時(shí)間的發(fā)展,很多用戶都很了解VS2003 MFC了,這里我發(fā)表一下個人理解,和大家討論討論。

說明:

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

學(xué)MFC,竟然還不知道MFC的MAIN函數(shù)在什么地方?怎么運(yùn)行的?實(shí)在不高明。
看過候捷(JJHOU)老師的《深入淺出MFC》的,對它一定很熟悉。呵呵,本文是獻(xiàn)給沒有看過那本書,但是又很希望學(xué)習(xí)MFC程序設(shè)計(jì)的朋友的。(沒有看過那本書的朋友還不趕快去買?)其實(shí)本文,主要是對《深入淺出MFC》第六章的一個總結(jié)和補(bǔ)充罷了?。ū疚挠性摃煌牡胤?,也有一些筆者自己的見解?。?BR>言歸正傳。

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

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

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

特別注意:深曉C++細(xì)節(jié)的人一定知道,全局對象優(yōu)先于MAIN函數(shù)執(zhí)行的道理。如果你不知道也沒關(guān)系,那么我在這里告訴你:“全局對象優(yōu)先于MIAN函數(shù)執(zhí)行,且構(gòu)建于棧中,切記,切記!”

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

現(xiàn)在我們就從這個全局下手,開始今天的旅途。此時(shí),系統(tǒng)會執(zhí)行CMyApp的父類(CWinApp)構(gòu)造函數(shù),再執(zhí)行CMyApp的構(gòu)造函數(shù)。(先有老爹,再有兒子?。?,此時(shí)就會調(diào)用CWinApp的構(gòu)造函數(shù)。OK,就到這里就可以了,仔細(xì)看上面代碼,它已經(jīng)完成了應(yīng)用程序線程額的啟動,它給予了我們程序的生命?,F(xiàn)在請注意:

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

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

責(zé)任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

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-25 11:25:31

VS2003軟件

2009-11-30 11:25:24

VS2003 UNIC

2009-11-27 09:53:15

VS2003安裝程序

2009-11-26 11:05:59

VS2003控件

2009-11-27 09:16:11

VS2003配置文件

2009-12-09 13:41:04

VS 2003 報(bào)錯

2009-11-27 08:59:29

VS2003配置文件

2009-12-15 13:39:43

2009-12-16 10:15:58

VS2003編譯

2009-12-16 13:29:27

VS2003版本

2009-12-01 13:10:29

VS2003壓縮代碼

2009-11-30 09:27:38

VS2003源代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號