C++ Dll 中的回调

来源:互联网 发布:淘宝评价顺序能调吗 编辑:程序博客网 时间:2024/06/15 05:33
1、在DLL定义类型
//回调类型
typedef int (WINAPI *PFCALLBACK)(int Param1,int Param2);

2、在Dll内定义装载变量
PFCALLBACK   gCallBack;

3、在DLL内定义方法对gCallBack赋值
void setCallBackFuntion(PFCALLBACK fun/*void * fun*/);

void CDll_App::setCallBackFuntion(PFCALLBACK fun/*void * fun*/)
{
        gCallBack = (PFCALLBACK)fun;
}

4、在调用模块里面引用Dll头文件
如果没有头文件,就要重做第1步。

5、在调用文件里定义加方法:
int WINAPI CBFunc(int Param1,int Param2);

int WINAPI CBFunc(int Param1,int Param2) 
...
}

6、调用文件里调用DLL的回调赋值方法
        CDll_App dApp;
        dApp.setCallBackFuntion((PFCALLBACK)CBFunc);
        int a = dApp.getIndex();

7、Dll文件是引起回调
int CDll_App::getIndex()
{
        gCallBack(128, 512);
        return 105;
}

转自:http://blog.163.com/lxquan2010@126/blog/static/1687382062011494915603/