string exe = "ELEXE";
HRSRC res=FindResource(NULL,exe.c_str(),RT_RCDATA);
if(res==NULL)
cout << GetLastError();
cout << "\n";
int size=SizeofResource(NULL,res);
if( !size )
cout << 122; // Arbitrario. -> ERROR_INSUFFICIENT_BUFFER
cout << "\n";
HGLOBAL hRes=LoadResource(NULL,res);
Llevo casi 6 meses en lenguaje C de forma independiente, ya he visto: pilas,colas listas enlazadas y doblemente enlazadas y aun no se que significan esos códigos. Y si es posible alguien me pasaría una guía que este desde el principio para poder entenderlos.
Parece que va más de la mano con programación de windows, Visual C++
https://msdn.microsoft.com/es-es/library/windows/desktop/ms648042(v=vs.85).aspx
Sin conocer mucho la libreria, intentare traducir y explicar en lo que puede consistir esos recursos:
HRSRC WINAPI FindResource(
_In_opt_ HMODULE hModule,
_In_ LPCTSTR lpName,
_In_ LPCTSTR lpType
);
En el que:
Parameters
hModule [in, optional]
Type: HMODULE
A handle to the module whose portable executable file or an accompanying MUI file contains the resource. If this parameter is NULL, the function searches the module used to create the current process.
Maneja el modulo en el que un archivo ejecutable o un archivo MUI contiene el recurso solicitado. Si el parametro es NULL, la función busca un un modulo que es creado al momento de crearse el proceso actual.
lpName [in]
Type: LPCTSTR
The name of the resource. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is the integer identifier of the resource. For more information, see the Remarks section below.
Es el nombre del recurso, puede ser un apuntador, o puede ser un ID, en ID es un valor entero para identificar el recurso.
lpType [in]
Type: LPCTSTR
The resource type. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is the integer identifier of the given resource type. For standard resource types, see Resource Types. For more information, see the Remarks section below.
Es el tipo del recurso, puede ser un apuntador, o puede ser un ID, en ID es un valor entero para identificar el recurso.
Creeria que tienes un pequeño ejemplo, pueden encontrarse más claro, pero en ingles.
https://vctipsplusplus.wordpress.com/tag/findresource-call-is-failing-in-dll/http://www.cplusplus.com/forum/general/54255/https://www.codeproject.com/Questions/80910/FindResource-failing-to-return-handlehttp://stackoverflow.com/questions/9646752/findresource-fails-to-find-data-even-though-data-is-in-exehttp://stackoverflow.com/questions/5807554/findresource-failsAhora, dependiendo de lo que necesites, pues tendrás que amoldar el ejemplo, pero bueno, básicamente lo veo de esta manera.
1) Instanciar un Objeto tipo HRSRC (ejm --> res)
2) Asignar ese objeto tipo HRSRC el metodo a ejecutar FindResource
3) FindResource Necesita: Un objeto tipo HMODULE, un ID donde se encuentre un recurso, y el tipo de referencia que tiene ese recurso.
4) SizeofResource y LoadResource son parecidas, necesitan el objeto HRSRC.
Se que es algo muy ambiguo, pero realmente se necesitaria estudiar a fondo Visual C++ y el funcionamiento del metodo, estudiando la libreria que lo contiene.
Espero que sirva de algo.