首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

回调函数的参数如何传递

2012-02-15 
回调函数的参数怎么传递?比如一个回调函数 void CALLBACK lineCallback(DWORD hDevice, DWORD dwMsg, DWOR

回调函数的参数怎么传递?
比如一个回调函数 void CALLBACK lineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance
  , DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
调用是 lineInitialize(&LineApp, HInstance, lineCallback, "Dialer", &nDevs);
lineCallback只是函数地址,函数到这怎么往下执行,参数怎么办?讲详细点,我笨。

[解决办法]
声明里都有了啊!不需要再指定参数了
[解决办法]
其实回调只是一个委托,调用者只管INVOKE它,根本不考虑它的参数传递
[解决办法]
你是在DLL中调用宿主程序定义的回调函数吧?如果是这样,lineInitialize(&LineApp, HInstance, lineCallback, "Dialer", &nDevs) 会吧函数地址传递给DLL,在DLL中你要获取此函数地址,比如lineInitializeCallback,然后这样调用(*lineInitializeCallback)(1,2,...).
[解决办法]
调用函数lineInitialize中传递回调函数地址的参数后面的各个参数就是传递给回调函数的参数,如果想你回调函数中接收那么多的参数,那么在调用函数中也要传递相同数量的参数

热点排行