• <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

            最新評論

            閱讀排行榜

            狠狠精品久久久无码中文字幕| 亚洲中文精品久久久久久不卡| 少妇久久久久久被弄高潮| av色综合久久天堂av色综合在| 狠狠精品久久久无码中文字幕| 久久91精品国产91久久麻豆| 国产日韩久久久精品影院首页 | 久久综合色老色| 久久久久亚洲av无码专区喷水| 久久99国产精品久久| 久久99精品久久久久久水蜜桃 | 狠狠88综合久久久久综合网| 久久久免费观成人影院| 久久久久亚洲Av无码专| 久久精品成人免费观看97| 久久精品国产99国产精品澳门| 欧美精品丝袜久久久中文字幕 | 国产精品久久久久久久久久影院 | 久久无码人妻一区二区三区| 亚洲色欲久久久久综合网| 四虎国产精品免费久久久| 久久精品www人人爽人人| 亚洲国产天堂久久久久久| 91精品国产高清久久久久久国产嫩草| 国产精品久久一区二区三区| 嫩草伊人久久精品少妇AV| 日批日出水久久亚洲精品tv| 伊人 久久 精品| 国产精自产拍久久久久久蜜| 国产精品视频久久久| 97久久天天综合色天天综合色hd | 亚洲中文久久精品无码| 欧美精品九九99久久在观看| 丁香久久婷婷国产午夜视频| 久久99国产精品久久| 99久久婷婷免费国产综合精品| 国产亚洲精久久久久久无码77777| 日日狠狠久久偷偷色综合免费 | 国产精品综合久久第一页| 国产一区二区精品久久凹凸| 久久精品国产一区|