C++ sqlite3 api is not defined (Visual Studio 2015)

C++ sqlite3 api is not defined (Visual Studio 2015)

本文关键字:Visual Studio 2015 defined sqlite3 api is not C++      更新时间:2023-10-16

所以我想乱搞一下,只是为了学习和东西,但现在我得到一个错误,"sqlite3_api"没有定义。

#include "stdafx.h"
#include "sqlite3.h"
#include "sqlite3ext.h"
using namespace std;
#define DB "dumpshit.s3db"
bool isOpenDB = false;
sqlite3 *db;
bool ConnectDB();
bool ConnectDB()
{
    if (sqlite3_open(DB, &db) == SQLITE_OK)
    {
        isOpenDB = true;
        return true;
    }
    return false;
}

这实际上是现在该测试文件中的所有内容。我还将 sqlite3.c 添加到我的源文件中,将 sqlite3.h + sqlite3ext.h 添加到我的头文件中。

为什么我会收到该错误消息?

没有必要包含sqlite3ext.h文件。只需包含sqlite3.h文件并将sqlite3.c文件添加到源文件文件夹中并编译程序,程序将执行而不会出现任何错误。

这是我编写的示例代码,它正在工作:

#include <sqlite3.h>
#include <stdio.h>
int main(void) 
{
sqlite3 *db;    
sqlite3_stmt *res;
int rec;
/* Opening Database. */
int rec = sqlite3_open("test.db", &db);
/* Preparing the query */    
sqlite3_prepare_v2(db, "create table tb1 (col1 text, col2 text, col3 int)", -1, &res, 0);
 /* Evaluating the statement. */
sqlite3_step(res);    
/* Closing Database. */
sqlite3_close(db);
return 0;
}

希望它有帮助..!!

我在开发扩展时遇到了这个问题,所以简单地删除#include "sqlite3ext.h"对我来说不是一个可行的解决方案。

起作用的是以下内容,来自"4.编程可加载扩展",sqlite的运行时可加载扩展文档。

  1. 将宏"SQLITE_EXTENSION_INIT1"单独放在"#include "行之后的一行上。

所以:

#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1

努力修复错误。