HMODULE GetModuleHandle (LPCTSTRlpModuleName);
功能说明
功能说明
获取一个特定的应用程序或动态链接库的模块句柄,且这个模块必须已经被加载到调用者的进程空间中,否则调用LoadLibrary。
GetModuleHandle(NULL);
这将返回自身应用程序句柄(好像一直是0x40000000,和GetCurrentProcess(一直是0xFFFFFFFF)是不一样的,一个是模块一个进程,用在不同的地方)即使是在模块内,返回的也是调用它的应用程序的句柄,而不是模块本身的句柄。
要在模块中获得模块本身的句柄,可以通过如下函数获得,该函数通过模块内的函数获得模块的句柄
HMODULE ModuleFromAddress(PVOID pv)
{
MEMORY_BASIC_INFORMATION mbi;
if(::VirtualQuery(pv, &mbi, sizeof(mbi)) != 0)
{