[英]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.