您的位置:首页 > 其它

dll获取自身路径的几种方法

2017-05-25 16:52 381 查看
获取模块路径通过GetModuleFileName,关键在于模块句柄的获取,几种方法如下:

一:在dllmain中保存HMODULE

二:通过GetModuleHandle传入dll的名称获取其HMODULE

三:通过函数地址获取其模块句柄

1:HMODULE GetSelfModuleHandle()

{
MEMORY_BASIC_INFORMATION mbi;
return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL);

}

2:GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
            (LPCSTR)&XXX, //可以是任何函数,全局变量等的地址
           &hModule);

四:(HINSTANCE)&__ImageBase
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息