Cosa sbaglio???
codice:
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define STRICT
#define WIN32_LEAN_AND_MEAN
DLLIMPORT void PlugInfo(char * name, char * autor)
{
char * msg;
strcpy(msg, name);
strcpy(msg, " by ");
strcpy(msg, autor);
strcpy(msg, "\n");
MessageBox (0, msg, "Hi", MB_ICONINFORMATION);
}
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
DLLIMPORT void PlugInfo(char * name, char * autor);
#endif /* _DLL_H_ */
#include <stdio.h>
#include <windows.h>
typedef void (*Plug)(char *, char *);
int main(int argc, char * argv[])
{
Plug * funz;
HMODULE mod = LoadLibrary("g.dll");
funz = (Plug *)GetProcAddress(mod, "PlugInfo");
funz("Plug esemply", "Luca");
FreeLibrary(mod);
return 0;
}