WinAPI - 从 DLL 加载资源

Jab*_*cky 1 c++ dll winapi

我正在使用 VisualStudio2017 开发适用于 Windows 7 的应用程序。该应用程序想要有从 DLL 加载的特殊游标。首先我创建了一个 DLL 并添加了以下 .rc 文件:

BM_CURSOR_GRAB          CURSOR               "./grab.cur"
BM_CURSOR_GRABBING      CURSOR               "./grabbing.cur"
Run Code Online (Sandbox Code Playgroud)

BM_CURSOR_GRAB 和 BM_CURSOR_GRABBING 在头文件中定义为:

#define BM_CURSOR_GRAB     100
#define BM_CURSOR_GRABBING 101
Run Code Online (Sandbox Code Playgroud)

我编译了 DLL - 它可以工作并使用ResourceEditor.exe我的资源进行检查:

图片来自资源编辑器

现在“非工作”部分开始。我的应用程序想要加载光标,但FindResource找不到它。这是我的代码:

HMODULE dll    = LoadLibrary("BenjaMiniRessources.dll");
HRSRC   hRes   = FindResource(dll, MAKEINTRESOURCE(100), RT_CURSOR);
DWORD   dwSize = SizeofResource(dll,hRes);
HGLOBAL hMem   = LoadResource(dll, hRes);
LPBYTE  pBytes = (LPBYTE)LockResource(hMem);

Cursor = CreateIconFromResource(pBytes, dwSize, false, 0x00030000);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

xMR*_*MRi 5

只需将LoadCursor与相应的 hInstance 一起使用即可。这适用于 MFC 和我的所有 Windows 应用程序。