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

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>
            久久国产精品99久久久久久老狼| 午夜精品国产更新| 亚洲综合精品| 亚洲视频高清| 国产亚洲人成网站在线观看 | 欧美高清在线一区| 亚洲精选成人| 一区二区三区欧美激情| 国产精品日韩欧美大师| 久久伊伊香蕉| 欧美精品国产精品日韩精品| 亚洲图片在线观看| 久久精品99久久香蕉国产色戒| 在线观看视频欧美| 亚洲精品视频在线观看网站| 国产精品日韩在线播放| 蜜桃久久av一区| 国产精品av免费在线观看| 久久久久久国产精品一区| 欧美承认网站| 久久国产日韩欧美| 欧美风情在线观看| 亚洲欧美日韩中文在线制服| 久久久久免费| 亚洲欧美综合一区| 男女激情久久| 久久riav二区三区| 欧美人成免费网站| 久久久精品一区二区三区| 欧美精品18+| 久久综合给合久久狠狠狠97色69| 欧美日韩一区二区欧美激情 | 久久久99精品免费观看不卡| 欧美.www| 久色成人在线| 国产精品乱子久久久久| 亚洲成色999久久网站| 国产精品男女猛烈高潮激情| 亚洲国产合集| 激情五月综合色婷婷一区二区| 99re在线精品| 亚洲人成亚洲人成在线观看| 香蕉精品999视频一区二区| 99精品视频一区| 麻豆精品在线观看| 久久久久久亚洲精品杨幂换脸 | 欧美伊久线香蕉线新在线| 国产精品99久久久久久久女警| 久久综合久久综合久久| 久久看片网站| 国产日韩在线看片| 先锋影音一区二区三区| 欧美亚洲视频在线观看| 国产精品国产三级欧美二区| 亚洲人成欧美中文字幕| 亚洲欧洲日韩综合二区| 久久野战av| 欧美成人亚洲| 亚洲国产美女久久久久 | 亚洲精品视频在线观看网站| 有码中文亚洲精品| 久久精品麻豆| 91久久精品国产91性色| 在线播放亚洲| 久久―日本道色综合久久| 久久久噜噜噜久久狠狠50岁| 国产伦精品一区二区三区免费 | 亚洲精品社区| 999亚洲国产精| 欧美精品一区二区三| 亚洲啪啪91| 亚洲天堂偷拍| 国产精品久久久一区二区三区| 亚洲一级二级在线| 欧美呦呦网站| 激情成人综合网| 免费永久网站黄欧美| 91久久久久久| 一区二区三区高清不卡| 国产精品扒开腿做爽爽爽软件 | 老司机久久99久久精品播放免费| 激情久久综艺| 欧美老女人xx| 亚洲男人的天堂在线| 久久美女性网| 亚洲人成亚洲人成在线观看| 欧美日韩国产综合视频在线| 亚洲综合欧美| 欧美99在线视频观看| 一本色道**综合亚洲精品蜜桃冫 | 欧美在线高清视频| 欧美激情自拍| 亚洲伊人第一页| 伊人久久综合| 欧美三级视频在线观看| 欧美一区二区视频在线观看2020| 欧美www视频| 亚洲摸下面视频| 亚洲成色999久久网站| 欧美日韩在线不卡一区| 欧美一区二粉嫩精品国产一线天| 亚洲第一天堂av| 欧美亚洲视频| 亚洲美女精品一区| 国产主播一区二区| 欧美日韩免费视频| 久久久久久婷| 亚洲一区二区三区在线看| 欧美国产日韩精品| 欧美亚洲综合另类| 一区二区三区国产在线| 黄色精品在线看| 国产精品欧美日韩| 欧美欧美全黄| 久久综合九色综合欧美就去吻| 亚洲一级影院| 日韩一级欧洲| 亚洲电影天堂av| 免费在线欧美视频| 久久精品视频播放| 亚洲欧美日本另类| 99综合视频| 亚洲精品免费一二三区| 在线电影院国产精品| 国产日韩欧美精品在线| 国产精品第13页| 欧美欧美在线| 亚洲成色最大综合在线| 久久婷婷国产麻豆91天堂| 欧美一级二区| 午夜一区二区三区不卡视频| 亚洲永久网站| 亚洲欧美日韩另类| 亚洲一区综合| 香蕉久久久久久久av网站| 亚洲手机在线| 亚洲一区999| 亚洲欧美电影在线观看| 亚洲综合二区| 亚洲欧美影音先锋| 午夜精品亚洲| 欧美中日韩免费视频| 久久精品91| 久久亚洲影音av资源网| 久久一区二区视频| 欧美成人亚洲成人| 亚洲电影视频在线| 亚洲精品小视频| 中日韩高清电影网| 亚洲欧美激情视频在线观看一区二区三区 | 永久久久久久| 亚洲电影第三页| 日韩午夜中文字幕| 一区二区三区欧美在线| 亚洲一区日本| 久久国产66| 狼人天天伊人久久| 欧美激情va永久在线播放| 欧美激情一区二区三区四区| 99精品黄色片免费大全| 亚洲五月六月| 久久久久久久综合| 欧美高清在线观看| 国产精品久久久久999| 国产亚洲精品aa午夜观看| 激情五月***国产精品| 亚洲三级影片| 欧美一区二区三区在线播放| 久久综合久色欧美综合狠狠| 亚洲福利小视频| 亚洲一区二区在| 久久久久久亚洲综合影院红桃| 欧美激情一二三区| 国产女主播一区| 亚洲人成7777| 欧美专区中文字幕| 亚洲大胆视频| 午夜精品理论片| 欧美精品久久天天躁| 国产日韩欧美在线观看| 99re66热这里只有精品4| 小处雏高清一区二区三区| 欧美成人69| 亚洲欧美精品| 欧美美女操人视频| 激情综合久久| 亚洲欧美另类国产| 亚洲丶国产丶欧美一区二区三区| 亚洲影院在线观看| 欧美精品入口| 在线观看亚洲| 久久激情久久| 亚洲四色影视在线观看| 女女同性精品视频| 国产综合视频在线观看| 午夜精品理论片| 亚洲精品在线视频| 蜜月aⅴ免费一区二区三区| 国产一区二区0| 午夜精品免费在线|