Programación General > Visual C++

 Getprocaddress

(1/1)

diego.martinez:
Buenas:

LLevo mis buenas horas dandole vueltas a lo que creo que sera un error de lo mas simple. He mirado en Google y no encuentro lo que puedo estar haciendo mal.
Estoy haciendo una dll.

en el .h pongo :


--- Código: Text ---#ifdef WRAPPER_EXPORTS  #define WRAPPER_API __declspec(dllexport)#else  #define WRAPPER_API __declspec(dllimport)#endif  WRAPPER_API void Test(void); 
en el .CPP pongo:


--- Código: Text ---#define WIN32_LEAN_AND_MEAN  #include <windows.h> #include "Wrapper.h"  BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved){  switch (ul_reason_for_call)  {  case DLL_PROCESS_ATTACH:        MessageBox(NULL,"Process Attachment!",NULL,NULL);        break;  case DLL_THREAD_ATTACH:        break;  case DLL_THREAD_DETACH:        break;  case DLL_PROCESS_DETACH:        MessageBox(NULL,"Process Dettachment!",NULL,NULL);          break;    }    return TRUE;} WRAPPER_API void Test(void){/*... CODE ... */}   

Hasta aqui todo es lo que me crea practicamente el wizard.
El problema es que cuando la voy a usar en el programa WRAPPER_TEST.cpp


--- Código: Text ---#include <windows.h> void (*Pru)(); int APIENTRY WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lp,int nShowCmd){  SetErrorMode(0);       HINSTANCE hLib=LoadLibrary("Wrapper.dll");      if (hLib!=NULL)       {       Pru=(void(*)())GetProcAddress(hLib,"Test");       if (Pru==NULL)              MessageBox(NULL,"PRU NULL!",NULL,NULL);               }      return 0;} 

Resulta que Pru siempre me da NULL, no se que puedo estar haciendo mal en esta DLL.
Muchas gracias por anticipado.

Eternal Idol:
Usa el Dependency Walker para ver con que nombre esta siendo exportada tu funcion:

http://www.dependencywalker.com/

diego.martinez:
muchas gracias,

al final resultaba que no exportaba la funcion por que no la habia escrito en el .def  :whistling:

Eternal Idol:

--- Cita de: "diego.martinez" --- muchas gracias,

al final resultaba que no exportaba la funcion por que no la habia escrito en el .def  :whistling:
--- Fin de la cita ---
De nadas, esperaba eso o que la exportara como C++ por ejemplo  ;)

Navegación

[0] Índice de Mensajes

Ir a la versión completa