繁体   English   中英

C++ sqlite3 api 未定义(Visual Studio 2015)

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

所以我想搞砸一点,只是为了学习和东西,但现在我得到一个错误,“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文件并在 Source File 文件夹中添加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"对我来说不是一个可行的解决方案。

以下是 sqlite 的Run-Time Loadable Extensions文档的“4. Programming Loadable Extensions”中的工作。

  1. 将宏“SQLITE_EXTENSION_INIT1”单独放在“#include <sqlite3ext.h>”行之后的一行。

所以:

#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1

努力修复错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM