SQLite 的sqlite3_exec和作为类成员的回调
SQLite's sqlite3_exec and callback as class member
我正在尝试
class Foo
{
static int ReadSelfFromBase(void *userarg, int argc, char **argv, char **ColName){...}
public:
void Bar(sqlite3* db)
{
...
rc = sqlite3_exec(db, "select * from test", &ReadSelfFromBase, this, &zErrMsg);
...
}
}
int main()
{
Foo test;
...
test.Bar(db);
}
但是callback不调用。如果a这样做
int main()
{
rc = sqlite3_exec(db, "select * from test", Foo::ReadSelfFromBase, NULL, &zErrMsg);
}
一切都好。有人知道如何解决这个问题吗?
PS不好意思
由于ReadSelfFromBase是一个静态函数,因此Foo::ReadSelfFromBase在Bar方法中的工作方式应该与在main方法中的工作方式相同。
最好在任何你想要的地方使用Foo::ReadSelfFromBase
,你知道,它是静态的。
相关文章:
- 如何在C++中使用非静态成员函数作为回调函数
- 如何使用C++对象的成员函数作为 C 样式回调?
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- 处理类内的回调时,必须调用对非静态成员函数的引用
- 如何将派生类中的成员函数作为回调传递?
- 将成员函数传递给glfwSet*回调
- 正在尝试为成员进行回调
- ROS 订阅回调 - 使用 boost::绑定成员函数
- 为什么可以在没有实例变量的情况下访问静态回调方法中的静态成员变量?
- 模板函数,用于在模板化对象上执行成员回调,而无需提供其实例
- 可以使用仅功能成员属性进行回调界面
- CPP成员对C回调包装器的反馈
- 将非静态成员函数作为回调传递
- 如何使用C lambda将成员功能指针转换为普通功能指针,以用作回调
- 如何在 Windows 上将成员函数作为与蓝牙相关的参数回调函数传递
- 用STD ::函数作为集体成员创建回调
- 访问作为WiFi侦听器回调成员函数一部分的类的成员
- C++来自不同类的多个回调成员函数,而无需 std 和 boost
- 指向SDL音频回调成员函数的指针
- 使用libevent回调成员函数