2010-06-11 6 views

Respuesta

11

Es bastante simple: en su solución, cambie a la vista de recursos, haga clic derecho en su archivo RC, seleccione "Agregar recurso", haga clic en "Importar", seleccione "Todos los archivos" y abra el archivo que desee. Se le solicitará que escriba un tipo de recurso personalizado. Ingrese "TEXTO" por ejemplo.

Ahora puede cargar su recurso personalizado así:

HRSRC hRes = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_TEXT1), _T("TEXT")); 
DWORD dwSize = SizeofResource(GetModuleHandle(NULL), hRes); 
HGLOBAL hGlob = LoadResource(GetModuleHandle(NULL), hRes); 
const BYTE* pData = reinterpret_cast<const BYTE*>(::LockResource(hGlob)); 

No es necesario para desbloquear o liberar el recurso, por lo que este código se puede utilizar exactamente como está escrito, sin escala adicionales. El recurso se liberará cuando su programa finalice.

+0

AfxGetResourceHandle solo está disponible en MFC. ¿Alguna idea de qué API puedo usar en win32? Estoy creando un exe y todos los recursos están en ese exe. – anand

+0

Utilice GetModuleHandle (NULL). Cambié mi respuesta en consecuencia. – humbagumba

+1

GetModuleHandle (NULL) funciona para los recursos EXE, pero el identificador del módulo DLL debe proporcionarse para los recursos ubicados en él. Y no olvides anular terminar la cadena dado posibles caracteres basura que siguen en el globo. – bvj

Cuestiones relacionadas