Как мне получить HMODULE для исполняемого в данный момент кода?

__ImageBase - это сгенерированный компоновщиком windows-api символ, который является win32 заголовком DOS модуля (только windows-sdk MSVC). Отсюда вы можете преобразовать win32api его адрес в HINSTANCE или HMODULE. Так что window-api это удобнее, чем через API.

Итак, вам win32api просто нужно сделать это:

EXTERN_C IMAGE_DOS_HEADER __ImageBase;
#define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)

От windows-sdk https://devblogs.microsoft.com/oldnewthing/20041025-00/?p=37483

c++

c

winapi

2022-11-12T07:25:49+00:00