[C con Clase] Problema al cargar un recurso en una dll
Man Alvarez
alvarez02 en gmail.com
Mie Jun 27 23:41:30 CEST 2007
Steven modifiqué tu código para cargar la librería con LoadLibrary() y luego
buscar el procedimiento con GetProcAddress() lo extraño es que ahora ya no
me funciona tu código, estoy empezando a creer que ahí puede estar el error.
Estas son las modificaciones que hice: tu código era:
case WM_COMMAND:
if( HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDOK )
{
if( !Dialog( NULL ) ) //GetModuleHandle("dll_dialogo.dll") ) )
MessageBox( hwnd, "Dialog() == FALSE", "ERROR", MB_OK );
}
break;
////////////////////////////////////////////////////////////////////
cambié ese case y quedo de esta manera:
////////////////////////////////////////////////////////////////////
case WM_COMMAND:
if( HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDOK )
{
HINSTANCE hinstMiLib = LoadLibrary("prueba.dll");
if( hinstMiLib == NULL ) {
MessageBox( hwnd, "LoadLibrary() Error", "ERROR", MB_OK );
break;
}
typedef HWND (*MYPROC)(HINSTANCE hInst);
MYPROC ProcAdd;
// _Z6DialogP11HINSTANCE__ es el nombre de la funcion
segun el archivo .def
ProcAdd = (MYPROC) GetProcAddress(hinstMiLib,
"_Z6DialogP11HINSTANCE__");
//si hubo error al obtener la direccion
if ( ProcAdd == NULL) {
MessageBox( hwnd, "GetProcAddress() Error", "error", MB_OK
);
FreeLibrary(hinstMiLib); // liberamos la memoria
break;
}
ProcAdd( NULL );
FreeLibrary(hinstMiLib);
}
break;
Comienzo a creer que el error esta en LoadLibrary() y GetProcAddress() con
los recursos.
El código de la librería lo deje igual.
Saludos.
PD: Mandé mi código en un adjunto de un correo anterior. llego a la lista
esta vez?
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070627/60e0821f/attachment.html>
Más información sobre la lista de distribución Cconclase