GetModuleHandle

编辑:砍头网互动百科 时间:2019-11-18 11:05:00
编辑 锁定
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
GetModuleHandle是获取一个应用程序或动态链接库的模块句柄。
外文名
GetModuleHandle
范    畴
计算机编程
注    意
只在当前进程有效
返回值
该句柄或零

GetModuleHandleVB声明

编辑
Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
说明
返回值
Long,如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpModuleName String,指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD
注解
只有在当前进程的场景中,这个句柄才会有效

GetModuleHandleC#声明

编辑
[DllImport("kernel32")]
  public static extern int GetModuleHandle(string lpModuleName);

GetModuleHandleVC声明

编辑
HMODULEGetModuleHandle(
LPCTSTRlpModuleName);
功能说明
获取一个特定的应用程序或动态链接库的模块句柄,且这个模块必须已经被加载到调用者的进程空间中。
参数说明
lpModuleName 模块名称
返回值
如执行成功成功,则返回模块句柄。零表示失败。通过GetLastError获得错误信息
如:
GetModuleHandle(NULL);
这将返回自身应用程序句柄
注意
前提是:只有欲获取的模块已映射到调用该函数的进程内,才会正确得到模块句柄。常用模块映射函数:LoadLibrary(..)。

GetModuleHandleWIN32汇编声明

编辑
GetModuleHandle,lpModuleName
函数的作用是返回指定模块名的句柄,如果为NULL,则返回本模块的句柄。
返回的句柄值存放在寄存器eax中。
lpModuleName参数是一个指向含有模块名称字符串的指针
使用举例:
.686p
.xmm
.mmx
.model flat,stdcall
option casemap:none
.data
szUserDll db 'User32.dll',0
.data?
hUserDllHandle dd?
sbError
invoke ExitProcess,0
start:
invoke GetModuleHandle,offsetszUserDll
test eax,eax
je sbError
mov hUserDllHandle,eax
end start
...

GetModuleHandle易语言声明

编辑
Ansi版本:
.版本 2
.DLL命令 GetModuleHandleA, 整数型, "kernel32.dll", "GetModuleHandleA"
.参数 lpModuleName, 文本型
Unicode版本:
.版本 2
.DLL命令 GetModuleHandleW, 整数型, "kernel32.dll", "GetModuleHandleW"
.参数 lpModuleName, 字节集
词条标签:
计算机学