Шаг 50 - LoadResource()

Функция читает ресурс из модуля. Для получения указателя на ресурс используйте функцию 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().


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 18.01.2001