假设 CallFun 的原型如下:
void CallFun(LPCSTR);在DLL里,
typedef void (*callFun)(LPCSTR);
callFun CallFun = NULL;
__declspec(dllimport) void SetCallFun(callFun fun)
{
CallFun = fun;
}
DLL里需要调用时,执行 CallFun("字符串");在EXE里:
typedef void (*callFun)(LPCSTR);
__declspec(dllexport) void SetCallFun(callFun fun);
SetCallFun(CallFun);
void CallFun(LPCSTR);在DLL里,
typedef void (*callFun)(LPCSTR);
callFun CallFun = NULL;
__declspec(dllimport) void SetCallFun(callFun fun)
{
CallFun = fun;
}
DLL里需要调用时,执行 CallFun("字符串");在EXE里:
typedef void (*callFun)(LPCSTR);
__declspec(dllexport) void SetCallFun(callFun fun);
SetCallFun(CallFun);
// in dll
//
typedef void (*CallFuncPtr)(void);__declspec(dllexport) void SetAndCallFunc( DWORD dwFuncPointer )
{
(*(CallFuncPtr)dwFuncPointer)();
}//
// in client side
//typedef void (*CallFuncPtr)(void);void CallBackFunc()
{
MessageBox(NULL,"","",MB_OK);
}int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
SetAndCallFunc( (DWORD)(CallFuncPtr)CallBackFunc ); return 0;
}