python是什么 GetModuleHandle用來(lái)做什么?
GetModuleHandle用來(lái)做什么?Getmodulehandle獲取模塊的句柄。參數(shù)是模塊的名稱,例如abcd.dll(也可能有。Exe,但更少)。如果參數(shù)為null,則表示當(dāng)前進(jìn)程的模塊句柄
GetModuleHandle用來(lái)做什么?
Getmodulehandle獲取模塊的句柄。參數(shù)是模塊的名稱,例如abcd.dll(也可能有。Exe,但更少)。如果參數(shù)為null,則表示當(dāng)前進(jìn)程的模塊句柄(。Exe)實(shí)際上是當(dāng)前進(jìn)程空間中模塊的加載地址。Exe程序加載句柄通常為0x00400000
Loadlibrary將模塊映射到調(diào)用進(jìn)程的地址空間,并在必要時(shí)增加引用計(jì)數(shù)。Getmodulehandle返回已映射到調(diào)用進(jìn)程地址空間的模塊的句柄,并且不增加引用計(jì)數(shù)。Getmodulehandle可用于確定要加載的模塊是否已加載(到調(diào)用進(jìn)程的地址空間中)以u(píng)ser32模塊中的函數(shù)為例:hmodule hdlluser32hdlluser32=loadlibrary(“user32”)if(hdlluser32){//聲明函數(shù)指針pfnsetlayered windowattributes bool(WinAPI*pfnsetlayered windowattributes)(hWnd、DWORD、byte、,DWORD)//使用GetProcAddress獲取模塊pfnsetlayered windowattributes=(bool(WinAPI*)(HWND,DWORD,BYTE,DWORD))GetProcAddress(hDllUser32,“SetLayeredWindowAttributes”)中(user32)函數(shù)的地址if(pfnSetLayeredWindowAttributes){pfnSetLayeredWindowAttributes(HWND,0,(BYTE)nTrans,LWA(alpha)//調(diào)用function}}freellibrary(hdlluser32)//用loadlibrary加載模塊后,不要忘記釋放它。它應(yīng)該增加要加載的模塊的計(jì)數(shù)