【发布时间】:2010-11-03 07:03:09
【问题描述】:
我有一个 C 库,需要注册一个回调函数来自定义一些处理。回调函数类型为int a(int *, int *)。
我正在编写类似于以下的 C++ 代码,并尝试注册一个 C++ 类函数作为回调函数:
class A {
public:
A();
~A();
int e(int *k, int *j);
};
A::A()
{
register_with_library(e)
}
int
A::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++ 类成员函数,如果可以,怎么做? (我在http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html 阅读了 32.8。但我认为它并不能解决问题)
- 是否有替代/更好的方法来解决这个问题?
【问题讨论】: