我正在努力
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);
}
但是回调没有调用。如果这样做
int main()
{
rc = sqlite3_exec(db, "select * from test", Foo::ReadSelfFromBase, NULL, &zErrMsg);
}
一切顺利。有谁知道如何解决这个问题
PS抱歉英语不好
最佳答案
由于 ReadSelfFromBase 是一个静态函数,因此 Foo::ReadSelfFromBase 在 Bar 方法中的工作方式应与在 main 中的工作方式相同。
关于c++ - SQLite 的 sqlite3_exec 和回调作为类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7852429/