有个项目用的Qt,调用了第三方库,但是库里只有一个回调函数接口
typedef BOOL (__stdcall *on_connect)(RSECSH server_h, RSECSH session_h, unsigned short device_id);
回调函数需要在外部实现.我在类中实现这个函数,却发现没法将成员函数指针传进去,在公共文件中用全局函数实现,这样是可以的,但是回调函数触发的时候怎么通知其他类去处理?
有个项目用的Qt,调用了第三方库,但是库里只有一个回调函数接口
typedef BOOL (__stdcall *on_connect)(RSECSH server_h, RSECSH session_h, unsigned short device_id);
回调函数需要在外部实现.我在类中实现这个函数,却发现没法将成员函数指针传进去,在公共文件中用全局函数实现,这样是可以的,但是回调函数触发的时候怎么通知其他类去处理?
#test.h
class test
{
public:
test();
static bool call_back(RSECSH server_h, RSECSH session_h, unsigned short device_id);
};
#test.cpp
static test *pTest
test::test()
{
pTest = this;
}
bool test::call_back(RSECSH server_h, RSECSH session_h, unsigned short device_id)
{
pTest->
}
定义一个全局静态的类指针
在构造函数的时候=this
回调函数调用这个全局的类指针就可以了