c++ - SQLite 的 sqlite3_exec 和回调作为类成员

标签 c++ sqlite callback

我正在努力

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/

相关文章:

c++ - 从基类指针 C++ 访问子类成员

c++ - 使用恒等式减去模数

c# - 在 Xamarin 中使用 SQLite 数据库的 C# 类中的另一个泛型中使用泛型类型

node.js - Node 错误 : Route. get() 需要回调函数,但得到了 [对象未定义]

c++ - 如何使用 boost::bind 正确绑定(bind)成员函数

c++ - 为什么具有 CRT 版本 30729.4148 的嵌入式 list 的程序在运行时在 winsxs 文件夹中以 30729.6161(最新)运行?

c++ - boost::lambda 中 boost::bind 的嵌套用法不起作用

android - 创建带有更新的新闻应用程序 android

.net - 从 .NET 与 SQLite 对话的最佳/最简单方法是什么?

swift - 如何将 CFunctionPointer 转换为 EventHandlerUPP?