Функция читает ресурс из модуля. Для получения указателя на ресурс используйте функцию FindResource() или FindResourceEx(). Если функция удачна, то вернется указатель на ресурс.
HGLOBAL LoadResource ( HMODULE hModule, // указатель модуля HRSRC hResInfo // указатель на ресурс );
Смотрим пример. Тот же проект, что и в FindResource():
// TestRes.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HRSRC rc=NULL; rc=FindResource(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),RT_DIALOG); if (rc!=NULL) { HGLOBAL hgl=NULL; hgl=LoadResource(hInstance,rc); if (hgl!=NULL) { FreeResource(hgl); } else MessageBox(NULL,"Not resource","error",MB_OK); } else MessageBox(NULL,"Not resource","error",MB_OK); return 0; }
Внимание HGLOBAL на самом деле не возвращает указатель именно к глобальной памяти. Этот тип использован для совместимости. Нельзя к нему применять функции типа GlobalLock() или GlobalFree().