使用C ++类成员函数作为C回调函数
我有一个C库,需要注册回调函数来定制一些处理。回调函数的类型是int a(int *, int *)
。
我正在编写类似于以下内容的C ++代码,并尝试将C ++类函数注册为回调函数:
class A { public: A(); ~A(); int e(int *k, int *j);};A::A(){ register_with_library(e)}intA::e(int *k, int *e){ return 0;}A::~A() {}
编译器抛出以下错误:
In constructor 'A::A()',error: argument of type ‘int (A::)(int*, int*)’ does not match ‘int (*)(int*, int*)’.
我的问题:
首先是可以注册一个C ++类的memeber函数,就像我想要做的那样,如果是这样的话怎么样?(我在http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html上阅读了32.8 。但在我看来它并没有解决问题)
是否有替代/更好的方法来解决这个问题?
汪汪一只猫
缥缈止盈