Como obtenho o HMODULE para o código atualmente em execução?
Tenho uma biblioteca estática que pode ser vinculada a um.exe
ou.dll
. Em tempo de execução, desejo que apenas algumas das funções da minha biblioteca obtenham oHMODULE
para qualquer coisa em que o código da biblioteca estática tenha sido vinculad
Atualmente, uso o seguinte truque (inspirado emeste fórum):
const HMODULE GetCurrentModule()
{
MEMORY_BASIC_INFORMATION mbi = {0};
::VirtualQuery( GetCurrentModule, &mbi, sizeof(mbi) );
return reinterpret_cast<HMODULE>(mbi.AllocationBase);
}
Existe uma maneira melhor de fazer isso que não parece tão hacky?
(Nota: O objetivo disso é carregar alguns recursos do Win32 que eu sei que meus usuários terão vinculado ao mesmo tempo que minha biblioteca estática.)