不用dllmain获取模块自身句柄
本帖最后由 urenai 于 2023-12-22 22:54 编辑有什么好办法吗?
static/image/hrline/4.gif
忘记贴代码了!!!
除了下述方式,还有别的办法吗?
仅讨论手段?
<火山程序 类型 = "通常" 版本 = 1 />
方法 取当前模块句柄 <公开 静态 类型 = 变整数 返回值注释 = "返回模块句柄" @禁止流程检查 = 真 @视窗.外部头文件 = "psapi.h" @视窗.外部库 = "Psapi.lib">
参数 文件名 <类型 = 文本型 注释 = "返回文件名" @默认值 = 空对象>
参数 路径 <类型 = 文本型 注释 = "返回路径" @默认值 = 空对象>
{
@ static HMODULE hModule = 0;
@ if (!GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,(LPCWSTR)&hModule,(HMODULE *)&hModule)){return 0;}
@ if (!hModule){return 0;}
@ char szProcessName={},szModName={};
@ if (GetModuleBaseNameW((HANDLE)-1,hModule,(LPWSTR)szProcessName,1024)){@<文件名>.SetText ((const TCHAR*)szProcessName);}
@ if (GetModuleFileNameW(hModule,(LPWSTR)szModName,1024)){@<路径>.SetText ((const TCHAR*)szModName);}
@ return (INT_P)hModule;
}
GetModuleHandleExW 这个API可以直接取,看看文档怎么用的 API呗!参考这个
https://bbs.125.la/forum.php?mod=viewthread&tid=14055939&extra= 呵呵仙8 发表于 2023-12-22 21:56
API呗!参考这个
https://bbs.125.la/forum.php?mod=viewthread&tid=14055939&extra=
我更新了帖子哦 fengshangren 发表于 2023-12-22 21:47
GetModuleHandleExW 这个API可以直接取,看看文档怎么用的
我更新了帖子哦 本帖最后由 793359277 于 2023-12-22 23:32 编辑
<火山程序 类型 = "通常" 版本 = 1 />
方法 取当前模块句柄 <公开 静态 类型 = 变整数 @嵌入式方法 = "">
{
@ (INT_P)_AtlBaseModule.GetModuleInstance()
}
793359277 发表于 2023-12-22 23:23
方法 取当前模块句柄
{
@ (INT_P)_AtlBaseModule.GetModuleInstance()
不具备通用性,淘汰。
我好像有点印象,好像是在线程上下文 还是什么结构里,存了相关参数。
其中包含了模块句柄。记不太清了。
页:
[1]