加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

DLL向主程序主动发送数据——回调函数法

(2012-07-17 13:34:42)
标签:

dll

发送数据

发送消息

回调函数法

分类: 编程相关

DLL向主程序主动发送数据——回调函数法

感谢http://www.vihome.net/bbs论坛的FASM大侠的帮助!

(在labwindows中实现)

DLL中:

// 作者新浪空间 http://blog.sina.com.cn/u/2267289007

typedef void (* pFunc)(int *pVal); //声明函数指针,在DllMain之前。
pFunc pCallBack=NULL;
int a;

DllMain()
{
    ......
}
//定义导出函数
int __stdcall DllFun(pFunc pFun)    //定义导出函数,在主程序中调用,把回调函数地址传递到DLL

{
    pCallBack=pFun;

    return 0;
}

//在DLL中需要时将a赋值后调用回调函数,就可以将a的值主动传递到主程序:

pCallBack(&a)


主程序中:


typedef void (* pFunc)(int *pval); //声明函数指针,在Main()之前。

int __stdcall DllFun(pFunc pFun); //声明导出函数

void MyCallBackFun(int *pval) ;   //声明回调函数

Main()
{

    ... ...
    DllFun(MyCallBackFun);   //调用DLL的导出函数,将回调函数指针传递到DLL
    ... ...
}


void MyCallBackFun(int *pval)      //定义回调函数

{
      //*pval 是传回的数据。

     SetCtrlVal (panelHandle, PANEL_LED, *pval);//LED会根据DLL中的a值亮或灭。

}

----------------------------------------完------------------------------------------

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有