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