簡體   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