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

Qt中的类成员函数指针 能否作为C函数的函数参数进行传递?解决思路

2012-06-08 
Qt中的类成员函数指针 能否作为C函数的函数参数进行传递?项目用QT/C++开发上层GUI,用C开发功能库。C的功能

Qt中的类成员函数指针 能否作为C函数的函数参数进行传递?
项目用QT/C++开发上层GUI,用C开发功能库。

C的功能库需要和上层GUI通信。

请问下面的想法能否实现:
将上层GUI的类实例的成员函数,作为C的函数参数传递给功能库,当作回调函数使用。


[解决办法]
当然可以, 只是这时要注意到线程安全的问题~``
如果在不同的线程, 最好通过将信号作为函数参数比较合适 :)
[解决办法]
直接用是不行的
可以将类的成员函数声明为静态成员函数
或者写个wrapper类

[解决办法]
类的成员指针和一般的指针还是有区别的。

全部用函数包装一下吧。

Class AAA {
public:
int BBB(int v)
};

typedef void* MyHandle;

extern "c" {
int AAA_BBB(MyHandle a, int v);
}

int AAA_BBB(MyHandle a, int v) {
AAA* in_a = (AAA*)a;
return in_a->BBB(v);
}
[解决办法]
尽量少用静态函数, 将成员函数封装起来通过组合方式会比较灵活~··
[解决办法]
库和界面是可以分开的

热点排行