• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++ Programmer's Cookbook

            {C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

            windows核心編程--windows程序的執行

            Windows 應用程序的執行

            ?

            Windows 支持兩種類型的應用程序。一種是基于圖形用戶界面( GUI )的應用程序,另一種是基于控制臺用戶界面( CUI )的應用程序。 ( 兩者間可以相互轉化 , 沒有明確的界限 , 就是說可以讓 CUI 程序中可以有 Dialog 界面等 , GUI 界面中也可以有 console 來輸出信息 )

            ?

            對于一個應用程序:

            操作系統實際上先調用的是C / C + +運行期啟動函數。該函數負責對C / C + +運行期庫進行初始化,這樣,就可以調用m a l l o c f r e e 之類的函數。它還能夠確保已經聲明的任何全局對象和靜態C + +對象能夠在代碼執行以前正確地創建。鏈接程序負責在它連接可執行文件時選擇相應的C / C + +運行期啟動函數。如果設定了/ S U B S Y S T E M : W I N D O W S 鏈接程序開關,那 么該鏈接程序期望找到一個Wi n M a i n w Wi n m a i n函數。如果這兩個函數都不存在,鏈接程序便返回一個未轉換的外部符號的錯誤消 息。否則,它可以分別選擇Wi n M a i n C RT S t a r t u p 函數或w Wi n M a i n C RT S t a r t u p 函數。

            啟動函數的功能歸納如下:

            ? 檢索指向新進程的完整命令行的指針。

            ? 檢索指向新進程的環境變量的指針。

            ? C / C + + 運行期的全局變量進行初始化。如果包含了 S t d L i b . h 文件,代碼就能訪問這些變量。表 4 - 1 列出了這些變量。

            ? C 運行期內存單元分配函數( m a l l o c c a l l o c )和其他低層輸入 / 輸出例程使用的內存棧進行初始化。

            ? 為所有全局和靜態 C + + 類對象調用構造函數。

            當所有這些初始化操作完成后, C / C + + 啟動函數就調用應用程序的進入點函數。如果編寫了一個 w Wi n M a i n 函數,它將以下面的形式被調用

            GetStartupInfo(&StartupInfo);
            int nMainRetVal = wWinMain(GetMjduleHandle(NULL),
               NULL, pszCommandLineUnicode,
               (StartupInfo.dwFlags & STARTF_USESHOWWINDOW) ? 
               StartupInfo.wShowWindow:SW_SHOWDEFAULT);
            ?


            當進入點函數返回時,啟動函數便調用 C 運行期的 e x i t 函數,將返回值( n M a i n R e t Va l )傳遞給它。 E x i t 函數負責下面的操作:

            ? 調用由 _onexit 函數的調用而注冊的任何函數。

            ? 為所有全局的和靜態的 C++ 類對象調用析構函數。

            ? 調用操作系統的 ExitProcess 函數,將 nMainRetVal 傳遞給它。這使得該操作系統能夠撤消進程并設置它的 e x i t 代碼。

            ?

            附錄 : 各種應用程序的進入點及對應的啟動函數

            ?

            應用程序類型

            進入點

            嵌入可執行文件的啟動函數

            需要ANSI字符和字符串的GUI應用程序

            WinMain

            WinMainCRTStartup

            需要Unicode字符和字符串的GUI應用程序

            wWinMainw

            WinMainCRTStartup

            需要ANSI字符和字符串的CUI應用程序

            main

            mainCRTStartup

            需要Unicode字符和字符串的CUI應用程序

            wmain

            wmainCRTStartup

            ?

            ?

            ?

            posted on 2006-09-12 11:57 夢在天涯 閱讀(1614) 評論(3)  編輯 收藏 引用 所屬分類: Windows API

            評論

            # re: windows核心編程--windows程序的執行 2006-09-12 23:47 shaker

            建議重新排版 看的累  回復  更多評論   

            # re: windows核心編程--windows程序的執行 2006-09-12 23:48 shaker

            奇怪 怎么firefox就是好的呢?  回復  更多評論   

            # re: windows核心編程--windows程序的執行 2009-02-04 01:28 iamatig

            0,以前一個人看書總會碰到很多困難,總是半途而廢
            好多難懂的地方,往往是因為翻譯得不好,難理解,又不方便問,要問得找到看過此書的人,而且最好是最近年看過的人。結果只能自己反復看,極費時間,往往要花好些時間才能理解,或者只好跳過,甚至影響對其它內容的理解,感覺真沒勁.
            也曾經覺得筆記心得還是很有用的,可以幫助自己去牢記知識,但寫了兩篇就沒勁寫下去了.因為太累了,真把自己的筆記全寫上去,也可以當得半本書了,但我不是說那種把原文簡單抄幾句后的筆記。
            現在我經常發現,計算機書籍中的一些內容,往往很容易用生活中的一些普通人常見的事去比較,他們好像有相同的地方.
            1,最后我總結出來,生動的類比就是最好的學習方法!
            好的類比不但讓你能深入地理解,而且很容易讓你記牢,過目不忘!這樣就提高了效率,節約了時間,時間是寶貴的,而且年輕時代的時間尤其寶貴!所以我深覺得,有必要要好好地把握住時間!不浪費時間.傳統的學習是很費時間的,因為閉門造車,費時費勁,其實也許你不懂的這段話,別人早就領悟出來了,也許他花了很長時間才領悟過來,沒關系,他共享出來,等于是節約了你的時間,而你又共享出自己的領悟,他看到,等于也是節約了時間,只要參與的人多,大家就容易多了!
            2,交流心得就是彼此節約時間,延長青春!
            大家看一本專業書要多長時間?一周?一個月?一年?其實,甚至幾年后還覺得那書沒完全看懂的人不在少數!為什么呢?書難懂啊!而且好不容易有了點理解還不敢肯定自己對不對。去問作者?呵,不大方便吧,顯然不切實際.
            看一本雜志要多長時間?看一本小人書要多長時間?想必大家都有小時侯看小人書和漫畫的經歷吧,那個效率,不是蓋的,每個人都會很高,而且效果還不差,看完后都能說個大概出來。為什么?容易懂啊,內容容易懂,語言也容易懂啊,都是常見的用語,當然容易懂,誰見過平常聊天也要思考半天才明白過來的?有,那也絕對是說話的人沒表達好或故意含糊.
            3,所以,通俗易懂的語言+通俗易懂的內容=極高的效率.
            而現在的專業書籍,往往是:晦澀的語言+專業的內容=蝸牛般的效率.
            一本書的發行量有多大?少則幾千本,多則幾萬本。如果這些人都知道有我們這樣一個網站,都習慣于上我們網站來一起討論同一本書,那是多么大的智慧在一起啊!每個人進度不同,各針對一部分自己很不容易搞懂(章,節,段都行)的內容發表自己見解,會多大地加快速度啊!
            這樣的思想碰撞,是人類文明的進步力量!
            想想網絡,帶來的改革日益巨大,我們學習的習慣也應該改一改了!
            現在很多流行的所謂多媒體學習方法,其實我覺得還是很不足,因為很多是應景而作,根本沒花心思。如果是大家你一點我一點地,都是下足了心思,所費時間不多,又很有質量,那就太好了。
            4,合適的人+合適的方法=最好的結果
            類比的方法很好,可惜基本上寫書的人都少用此法.沒關系,我們可以自己來,你一段,我一段,大家很快就可以寫出生動易懂通俗的筆記來了!
            希望大家都好好考慮一下我的方法,大家多想想如何做才好,這樣我們就節約自己的時間了,一日千里!
            http://www.nba5i.com/bbsxp/
            謝謝!  回復  更多評論   

            公告

            EMail:itech001#126.com

            導航

            統計

            • 隨筆 - 461
            • 文章 - 4
            • 評論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1807518
            • 排名 - 5

            最新評論

            閱讀排行榜

            亚洲国产美女精品久久久久∴| 欧美久久综合九色综合| 久久精品日日躁夜夜躁欧美| 热99RE久久精品这里都是精品免费 | 久久精品成人欧美大片| 久久久久亚洲精品中文字幕| 国产成人精品综合久久久| 久久精品人人做人人爽97| 久久99国产一区二区三区| 久久婷婷国产综合精品| 久久精品国产第一区二区| 久久久久99精品成人片直播| 久久综合亚洲色HEZYO国产| 久久棈精品久久久久久噜噜| 久久黄视频| 久久国产精品-久久精品| 蜜桃麻豆WWW久久囤产精品| 成人精品一区二区久久| 亚洲国产一成人久久精品| 久久影院亚洲一区| 久久免费小视频| 久久国产精品无码一区二区三区| 久久久久亚洲AV无码专区网站 | 亚洲乱码日产精品a级毛片久久 | 久久一本综合| 伊人色综合久久| 久久综合给合久久狠狠狠97色| 久久综合伊人77777| 狠狠久久综合伊人不卡| 久久综合久久综合九色| 久久久婷婷五月亚洲97号色| 久久精品国产2020| 久久综合鬼色88久久精品综合自在自线噜噜 | 国产精品久久久久AV福利动漫| 97久久婷婷五月综合色d啪蜜芽| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久国产免费直播| 午夜精品久久影院蜜桃| 久久人妻少妇嫩草AV蜜桃| 日韩美女18网站久久精品| 欧美久久天天综合香蕉伊|