How do I create a statically linked extension for sqlite?

sqlite3_auto_extension looks like a good way to register a statically linked extension. But I don't understand the callback declaration:


void (*xEntryPoint)(void);

      

Should the callback look like sqlite3_extension_init?


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

      

+2


source to share


1 answer


I am also puzzled why the callback is declared this way. sqllite calls it like this:

xInit(db, &zErrmsg, &sqlite3Apis);

      



So you should have, for example,

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

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

      

+5


source







All Articles