获取当前模块的句柄


发布于 2021-01-27


vc++编程中,通常获取模块句柄可以调用 GetModuleHandle api,它需要的参数是模块的文件名。而获取模块的文件名可以通过 GetModuleFileName api,它需要参数是模块的句柄。嗯,这好像陷入了死循环。

一个便捷的办法是使用编译生成的模块伪变量__ImageBase

extern "C" IMAGE_DOS_HEADER __ImageBase;
HMODULE handle = reinterpret_cast<HMODULE>(&__ImageBase);

参考