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 :
#ifdef WRAPPER_EXPORTS
#define WRAPPER_API __declspec(dllexport)
#else
#define WRAPPER_API __declspec(dllimport)
#endif
WRAPPER_API void Test(void);
en el .CPP pongo:
#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
#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.