青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Windows在加載DLL的時(shí)候,需要一個(gè)入口函數(shù),就如同控制臺或DOS程序需要main函數(shù)、WIN32程序需要WinMain函數(shù)一樣。在前面的例子中,DLL并沒有提供DllMain函數(shù),應(yīng)用工程也能成功引用DLL,這是因?yàn)閃indows在找不到DllMain的時(shí)候,系統(tǒng)會從其它運(yùn)行庫中引入一個(gè)不做任何操作的缺省DllMain函數(shù)版本,并不意味著DLL可以放棄DllMain函數(shù)。

  根據(jù)編寫規(guī)范,Windows必須查找并執(zhí)行DLL里的DllMain函數(shù)作為加載DLL的依據(jù),它使得DLL得以保留在內(nèi)存里。這個(gè)函數(shù)并不屬于導(dǎo)出函數(shù),而是DLL的內(nèi)部函數(shù)。這意味著不能直接在應(yīng)用工程中引用DllMain函數(shù),DllMain是自動被調(diào)用的。

  我們來看一個(gè)DllMain函數(shù)的例子(單擊此處下載本工程附件)。

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

printf("\nprocess attach of dll");

break;

case DLL_THREAD_ATTACH:

printf("\nthread attach of dll");

break;

case DLL_THREAD_DETACH:

printf("\nthread detach of dll");

break;

case DLL_PROCESS_DETACH:

printf("\nprocess detach of dll");

break;

}

return TRUE;

}


  DllMain函數(shù)在DLL被加載和卸載時(shí)被調(diào)用,在單個(gè)線程啟動和終止時(shí),DLLMain函數(shù)也被調(diào)用,ul_reason_for_call指明了被調(diào)用的原因。原因共有4種,即PROCESS_ATTACH、PROCESS_DETACH、THREAD_ATTACH和THREAD_DETACH,以switch語句列出。
來仔細(xì)解讀一下DllMain的函數(shù)頭BOOL APIENTRY DllMain( HANDLE hModule, WORD ul_reason_for_call, LPVOID lpReserved )。

  APIENTRY被定義為__stdcall,它意味著這個(gè)函數(shù)以標(biāo)準(zhǔn)Pascal的方式進(jìn)行調(diào)用,也就是WINAPI方式;

  進(jìn)程中的每個(gè)DLL模塊被全局唯一的32字節(jié)的HINSTANCE句柄標(biāo)識,只有在特定的進(jìn)程內(nèi)部有效,句柄代表了DLL模塊在進(jìn)程虛擬空間中的起始地址。在Win32中,HINSTANCE和HMODULE的值是相同的,這兩種類型可以替換使用,這就是函數(shù)參數(shù)hModule的來歷。

  執(zhí)行下列代碼:

hDll = LoadLibrary("..\\Debug\\dllTest.dll");

if (hDll != NULL)

{

addFun = (lpAddFun)GetProcAddress(hDll, MAKEINTRESOURCE(1));

//MAKEINTRESOURCE直接使用導(dǎo)出文件中的序號

if (addFun != NULL)

{

int result = addFun(2, 3);

printf("\ncall add in dll:%d", result);

}

FreeLibrary(hDll);

}



  我們看到輸出順序?yàn)椋?BR>
  process attach of dll

  call add in dll:5

  process detach of dll

  這一輸出順序驗(yàn)證了DllMain被調(diào)用的時(shí)機(jī)。

  代碼中的GetProcAddress ( hDll, MAKEINTRESOURCE ( 1 ) )值得留意,它直接通過.def文件中為add函數(shù)指定的順序號訪問add函數(shù),具體體現(xiàn)在MAKEINTRESOURCE ( 1 ),MAKEINTRESOURCE是一個(gè)通過序號獲取函數(shù)名的宏,定義為(節(jié)選自winuser.h):

#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))

#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))

#ifdef UNICODE

#define MAKEINTRESOURCE MAKEINTRESOURCEW

#else

#define MAKEINTRESOURCE MAKEINTRESOURCEA

Posted on 2005-11-25 18:12 艾凡赫 閱讀(7662) 評論(0)  編輯 收藏 引用 所屬分類: DLL 技術(shù)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一级久久久| 久久精品夜夜夜夜久久| 欧美日韩日韩| 欧美日韩国产综合视频在线观看中文 | 久久久999国产| 久久精品国产一区二区三| 久久精品二区三区| 久久综合激情| 亚洲欧洲偷拍精品| 亚洲精品久久7777| 亚洲一区二区视频在线| 久久久精品欧美丰满| 欧美精品18videos性欧美| 国产精品午夜久久| 亚洲国产欧美不卡在线观看| 在线视频日韩| 久久青草久久| 亚洲毛片在线观看.| 欧美亚洲一区三区| 欧美精品一区二区三区久久久竹菊 | 欧美日韩另类视频| 国产噜噜噜噜噜久久久久久久久| 激情欧美一区二区三区| 一本色道久久综合亚洲精品不| 欧美一区日本一区韩国一区| 嫩模写真一区二区三区三州| 中文精品一区二区三区| 久久五月激情| 国产精品入口麻豆原神| 亚洲啪啪91| 久久久久在线| 国产精品成人免费| 亚洲欧美国产高清va在线播| 亚久久调教视频| 欧美日韩综合网| 亚洲韩国日本中文字幕| 欧美一区二区啪啪| 亚洲精品中文字幕有码专区| 久久久蜜臀国产一区二区| 国产精品久久久久久久第一福利| 亚洲狠狠丁香婷婷综合久久久| 欧美一区二区成人| 一区二区三区免费看| 欧美国产在线电影| 亚洲国产欧美一区二区三区同亚洲| 性色一区二区三区| 在线视频日本亚洲性| 欧美日本国产视频| 日韩一级免费| 亚洲国内精品| 欧美sm重口味系列视频在线观看| 红桃视频国产一区| 久久午夜电影| 久久久噜噜噜久久狠狠50岁| 狠狠干狠狠久久| 麻豆精品视频在线观看视频| 久久国产色av| 在线精品视频一区二区| 蜜桃久久精品乱码一区二区| 久久精品国产99国产精品澳门 | 久久蜜臀精品av| 国产一区高清视频| 久久婷婷国产综合尤物精品| 久久电影一区| 在线观看欧美亚洲| 欧美国产日韩xxxxx| 久久中文字幕一区| 91久久亚洲| 亚洲九九精品| 国产精品看片你懂得| 香蕉av福利精品导航| 欧美一区午夜精品| 亚洲第一在线视频| 亚洲精品乱码久久久久久黑人| 欧美日韩国产区一| 香蕉久久一区二区不卡无毒影院| 欧美亚洲一区二区在线| 在线播放视频一区| 最近看过的日韩成人| 欧美色一级片| 久久久久99精品国产片| 久久综合给合久久狠狠狠97色69| 亚洲精品一区久久久久久| 日韩一级大片| 国产主播一区二区三区| 欧美激情一区二区三区高清视频 | 久久国产免费| 麻豆精品视频| 久久av红桃一区二区小说| 欧美国产综合视频| 亚洲欧美日韩专区| 久久久久一区二区三区| 一本一本a久久| 欧美一区在线看| 这里只有精品电影| 香蕉成人久久| 一区二区三区日韩精品视频| 久久se精品一区精品二区| 亚洲人成网站在线观看播放| 亚洲一区二区三区视频播放| 亚洲第一精品夜夜躁人人躁| 亚洲伦理在线观看| 在线精品视频在线观看高清| 在线视频精品一区| 亚洲欧洲精品一区二区三区波多野1战4| 夜夜嗨av一区二区三区四区| 一区免费观看视频| 亚洲免费网址| 一区二区三区视频在线| 久久露脸国产精品| 久久久99免费视频| 国产精品欧美一区喷水 | 久久精品视频播放| 亚洲视频999| 欧美成人综合一区| 免费看亚洲片| 精品二区久久| 久久精品日产第一区二区| 亚洲欧美色一区| 欧美三级欧美一级| 亚洲精品一区二区三区婷婷月| 经典三级久久| 久久国产精品72免费观看| 欧美一区二区视频网站| 国产精品久久久久免费a∨| 日韩视频在线观看一区二区| 日韩亚洲一区二区| 欧美激情亚洲综合一区| 亚洲丰满少妇videoshd| 极品少妇一区二区三区| 欧美在线电影| 久久免费国产精品1| 国产一区二区三区四区hd| 亚洲欧美资源在线| 久久国产精品久久久久久电车| 国产欧美精品国产国产专区| 亚洲欧美在线观看| 久久久亚洲国产天美传媒修理工| 国产日韩视频| 久久国产精品免费一区| 久久视频在线看| 亚洲国产成人午夜在线一区| 欧美成人免费视频| 亚洲毛片网站| 香蕉久久久久久久av网站| 国产欧美日韩视频一区二区| 欧美亚洲尤物久久| 暖暖成人免费视频| 99国产欧美久久久精品| 国产精品magnet| 亚洲视频在线二区| 欧美在线免费观看视频| 伊人久久大香线| 欧美激情成人在线视频| 狠狠狠色丁香婷婷综合久久五月| 欧美亚洲日本网站| 亚洲欧美色婷婷| 国产专区欧美专区| 日韩一区二区电影网| 99国产精品久久久久久久成人热| 亚洲一区高清| 欧美激情精品久久久久久黑人| 久久嫩草精品久久久精品| 欧美一区二区视频在线观看| 亚洲欧美日本视频在线观看| 中文国产成人精品久久一| 99re8这里有精品热视频免费| 亚洲国产精品久久91精品| 国语自产精品视频在线看8查询8| 国产精品v日韩精品| 欧美日韩亚洲在线| 欧美另类在线播放| 欧美日韩www| 欧美色欧美亚洲另类二区| 欧美午夜a级限制福利片| 欧美视频精品在线| 国产精品成人aaaaa网站| 欧美日韩一区二区在线观看视频| 欧美日韩麻豆| 国产精品久久毛片a| 国产精品丝袜91| 国产视频在线观看一区二区| 国产亚洲一区二区三区| 狠狠综合久久av一区二区小说| 黄色亚洲在线| 亚洲国产乱码最新视频| 日韩一本二本av| 亚洲欧美日韩高清| 久久国产日本精品| 美女性感视频久久久| 亚洲第一网站免费视频| 亚洲精品日韩在线观看| 99视频日韩| 欧美一区1区三区3区公司| 噜噜爱69成人精品| 欧美视频在线不卡| 国产主播喷水一区二区| 亚洲精品日韩综合观看成人91| 亚洲宅男天堂在线观看无病毒| 欧美中文字幕第一页|