作者:天朝影帝
转自:http://blog.csdn.net/aizeng/article/details/6887642
- //dll头文件
- #include <Windows.h>
- #include <stdio.h>
- #include <process.h>
- #define MYLIBAPI extern "C" __declspec(dllexport);
- typedef int (WINAPI *PFCALLBACK)();
- MYLIBAPI void WINAPI TestCallBack(PFCALLBACK Func) ;
- //dll源文件
- #include "stdafx.h"
- #include "CallbackDll.h"
- PFCALLBACK gCallBack = NULL;
- int WINAPI CBFunc(int Param1,int Param2);
- ULONG WINAPI Thread1(LPVOID Param);
- void WINAPI TestCallBack(PFCALLBACK Func)
- {
- if(Func == NULL)
- return;
- gCallBack = Func;
- DWORD ThreadID = 0;
- HANDLE hThread = CreateThread(NULL, NULL, Thread1, LPVOID(0), NULL, &ThreadID);
- return;
- }
- ULONG WINAPI Thread1(LPVOID Param)
- {
- int Step = 1;
- (*gCallBack)();
- return 0;
- }
- //.cpp文件
- #include "stdafx.h"
- #include <Windows.h>
- #include <stdio.h>
- #include <process.h>
- #include "../CallbackDll/CallbackDll.h"
- int WINAPI CBFunc();
- int _tmain(int argc, _TCHAR* argv[])
- {
- TestCallBack(CBFunc);
- Sleep(100);
- return 0;
- }
- int WINAPI CBFunc()
- {
- printf(_T("ddddddddddddddddddddddd\n"));
- return 1;
- }