C++中的函数如何做为C回调函数(原型不能改),这个回调函数要处理底层事件!
底层的播放器事件需要传入几个回调函数,然后再回调函数里处理事件。
上层用的是Qt/C++,但是C++成员函数不能直接传递给C(传递了也不能访问类里面的函数和变量),我的解决的方式是用外部函数或者静态函数。
如果用静态函数,在Qt中创建了两个对象,静态函数中的事件仍然是同一个东西(两个对象,那么底层也应该是两个不懂的对象吧),这样显然不行的。
如果用外部函数作为回调函数,那么怎么把事件传递给Qt呢?比如底层探测到网络不同,如何通知Qt?
[最优解释]
再加个原型,并在前面加上 extern "C" 不行吗?
两个原型都存在时,既能被C++调用,也可以被C调用的。
[其他解释]
前面声明加static
[其他解释]
元芳,CSDN新论坛上线!你怎么看?
[其他解释]
上一楼是回的什么哦!
这个问题还是我来回答吧,回调函数还是用静态函数比较好。我的做法是用单例模式使的静态函数也能唯一的访问到累的指针,那么类的成员函数和数据成员也就没有问题了!
[其他解释]
就这样吧,不想改了。。