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

            把握命運(yùn),追逐夢(mèng)想

            對(duì)自己所做的事要有興趣,同時(shí)還要能夠堅(jiān)持不懈

            統(tǒng)計(jì)

            留言簿(1)

            閱讀排行榜

            評(píng)論排行榜

            exe、dll的進(jìn)入點(diǎn),以及main、winmain、dllmain的關(guān)系

            靜態(tài)鏈接的情況不考慮,因?yàn)檫@種情況就是把所有代碼合并到exe中,不需要進(jìn)入點(diǎn)。

            進(jìn)入點(diǎn)就是系統(tǒng)在加載一個(gè)可執(zhí)行代碼塊(主要是exe和dll)到內(nèi)存的時(shí)候,系統(tǒng)將要調(diào)用的起始代碼的位置。

            加載分為啟動(dòng)時(shí)加載和運(yùn)行時(shí)加載,這兩種說法主要是針對(duì)dll的,因?yàn)閑xe加載必然會(huì)創(chuàng)建一個(gè)新的進(jìn)程,所以exe加載都是啟動(dòng)時(shí)加載,就算是createprocess也應(yīng)該說是啟動(dòng)時(shí)加載。而dll分為兩種情況,第一種就是隨著exe的加載一起加載到內(nèi)存的同一進(jìn)程地址空間中,另一種則是exe中的代碼loadlibrary在運(yùn)行時(shí)加載dll到當(dāng)前exe的進(jìn)程地址空間中。
            無論上面哪種情況,只要加載,系統(tǒng)就會(huì)一定在加載的時(shí)候調(diào)用進(jìn)入點(diǎn)代碼,所以加載方式與進(jìn)入點(diǎn)完全不影響。

            win sdk文檔中exe的進(jìn)入點(diǎn)有兩個(gè),一個(gè)是main,另一個(gè)是winmain,這個(gè)進(jìn)入點(diǎn)是可以改的,但是在c運(yùn)行環(huán)境下,連接器一般把進(jìn)入點(diǎn)默認(rèn)設(shè)置為mainCRTStartupWinMainCRTStartup,因?yàn)閏運(yùn)行時(shí)需要在代碼執(zhí)行前進(jìn)行一些別的工作,所以就修改為前面兩個(gè)c入口點(diǎn),然后這兩個(gè)函數(shù)再分別調(diào)用main和winmain。c運(yùn)行時(shí)需要作的特別工作就是初始化c運(yùn)行時(shí)環(huán)境,包括靜態(tài)、全局變量和對(duì)象初始化。當(dāng)main或者winmain返回時(shí)就又回到了前兩個(gè)函數(shù)中,這兩個(gè)函數(shù)的后半部分就是負(fù)責(zé)清理之前的初始化工作。

            win sdk文檔中的dll的進(jìn)入店是dllmain,同樣在c運(yùn)行時(shí)下,改為_DllMainCRTStartup,系統(tǒng)加載dll時(shí)調(diào)用這個(gè)函數(shù),然后這個(gè)函數(shù)做些初始化工作,再調(diào)用dllmain,然后返回_DllMainCRTStartup結(jié)束執(zhí)行。此時(shí),dll已經(jīng)在進(jìn)程的地址空間中了,該進(jìn)程的exe可以使用dll中的代碼了。如果該dll是啟動(dòng)時(shí)加載,那么在程序結(jié)束時(shí)會(huì)再次調(diào)用_DllMainCRTStartup進(jìn)行清理之前dll初始化的工作,如果是通過loadlibrary來運(yùn)行時(shí)加載dll,那么需要exe自己卸載dll,卸載的時(shí)候會(huì)再次調(diào)用_DllMainCRTStartup

             

            posted on 2009-08-18 18:50 把握命運(yùn) 閱讀(1788) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久精品亚洲AV久久久无码| 7国产欧美日韩综合天堂中文久久久久| 激情综合色综合久久综合| 青青热久久国产久精品| 亚洲va中文字幕无码久久| 狠狠色综合网站久久久久久久| 久久影视国产亚洲| 国产精品综合久久第一页| 国内精品久久久久影院免费| 一本色道久久综合狠狠躁| 亚洲欧美成人久久综合中文网 | 久久棈精品久久久久久噜噜| 久久中文字幕视频、最近更新 | 热99re久久国超精品首页| 伊人色综合久久天天人手人婷| 日韩一区二区久久久久久 | 狠狠色丁香婷婷综合久久来来去 | 一日本道伊人久久综合影| 久久国产视频网| 狠狠久久综合伊人不卡| 亚洲AV日韩精品久久久久| 日韩亚洲国产综合久久久| 日本精品久久久久中文字幕8| 无码久久精品国产亚洲Av影片| 久久天天躁狠狠躁夜夜2020 | 无码伊人66久久大杳蕉网站谷歌 | 1000部精品久久久久久久久| 一本一本久久A久久综合精品 | 2022年国产精品久久久久| 久久精品人人做人人爽电影| 日本精品久久久久影院日本| 91精品国产91久久久久久| 久久亚洲中文字幕精品有坂深雪| 日韩乱码人妻无码中文字幕久久| 人人狠狠综合久久亚洲高清| 久久久久久国产精品无码下载| 国产综合精品久久亚洲| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 精品无码久久久久久久动漫| 久久91亚洲人成电影网站| AV无码久久久久不卡蜜桃|