[英]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”中的工作。
- 将宏“SQLITE_EXTENSION_INIT1”单独放在“#include <sqlite3ext.h>”行之后的一行。
所以:
#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1
努力修复错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.