如何为sqlite创建静态链接的扩展?

时间:2009-08-18 18:13:50

标签: c sqlite

sqlite3_auto_extension看起来是注册静态链接扩展的好方法。但我不理解回调声明:


void (*xEntryPoint)(void);

回调不应该像sqlite3_extension_init一样吗?


int sqlite3_extension_init(
  sqlite3 *db,
  char **pzErrMsg,
  const sqlite3_api_routines *pApi
)

1 个答案:

答案 0 :(得分:5)

我也很困惑为什么这样的回调被宣布。 sqllite称之为:

xInit(db, &zErrmsg, &sqlite3Apis);

所以你应该有例如。

int my_extension(sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi)
{
  //register stuff
  return 0; //ok
}

...
sqlite3_auto_extension((void*)my_extension);