[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