У меня есть статическая библиотека, которая может быть связана как с .exe
, так и с .dll
. Во время выполнения я хочу, чтобы мои функции библиотеки получали HMODULE
для любой вещи, к которой был привязан статический код библиотеки.
В настоящее время я использую следующий трюк (вдохновленный этот форум):
const HMODULE GetCurrentModule()
{
MEMORY_BASIC_INFORMATION mbi = {0};
::VirtualQuery( GetCurrentModule, &mbi, sizeof(mbi) );
return reinterpret_cast<HMODULE>(mbi.AllocationBase);
}
Есть ли лучший способ сделать это, что не выглядит настолько взломанным?
(Примечание. Цель этого заключается в загрузке некоторых ресурсов Win32, которые, как я знаю, будут связаны моими пользователями одновременно с моей статической библиотекой.)