リュウグウノツカイのように

深海で悠々と暮らしたい

Windows/Visual Studio 2022 /C,C++でSQLiteを動かす準備

完全な自分用メモですので、予めご了承ください。

【簡単な手順】

1.SQLite公式サイトから、DLLをダウンロード: https://www.sqlite.org/download.html

DLL

2.Visual Studio 2022を立ち上げ、コードなしで続行→画面上部の検索ウィンドウに「コマンドプロンプト」と入力。開発者コマンドプロンプトをクリック。
// 参考サイトでは、Visual Studio Toolsとの話があり、結局VSでコマンドプロンプトが開けたら良いのでは?という狙い。

コマンドプロンプト

3.表示されたコマンドプロンプトで、ダウンロードした場所までcdで移動したあと、
lib /def:sqlite3.def /machine:x86と入力。X86のところはダウンロードしたビットに合わせて変更。

lib作成

4.libができた

lib

5.SQLite公式サイトから、ヘッダファイルをダウンロード:https://www.sqlite.org/download.html

source

6.Visual Studioでプロジェクトを作成、実行用のcppファイル(ここではmain.cpp)を追加。

7.さらに、ヘッダファイル内についてきたsqlite3.cppも、ソースファイルに追加。

ディレクト

8.プロジェクトと同階層に、今まで展開してきたSQLite系のファイルをまとめて突っ込む(ここではsqlite3というファイルを新たに作成し、ファイルを突っ込みました。絶対に余分なモノがありそうだが、気になるかたは各自で取り除いて...)

まとめ

9.プロジェクトのプロパティ→C/C++→プリコンパイル済みヘッダー→追加のインクルードディレクトリで、SQLite系のファイルをまとめて突っ込んだsqlite3というファイルを指定。

プロパティ

10.プロジェクトのプロパティ→C/C++→プリコンパイル済みヘッダー→プリコンパイル済みヘッダー→プリコンパイル済みヘッダーを使用しない に設定。

プリコンパイル済みヘッダー

11.プロジェクトのプロパティ→→リンカー→全般→追加のライブラリディレクトリで、SQLite系のファイルをまとめて突っ込んだsqlite3というファイルを指定。適用→OK。

ライブラリディレクト

12.サンプルプログラムを書いて実行できるか確かめよう!

#include <stdio.h>
#include <sqlite3.h>

int main(void) {

    //データベース接続先
    sqlite3* connect = NULL;

    //データベース名
    const char* dbname = "test.sqlite3";

    //実行結果
    int ret = -1;

    //データベースにアクセス(データベースが無いときは作成)
    ret = sqlite3_open_v2(
        dbname,
        &connect,
        SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
        nullptr
    );

    //接続チェック
    if (ret == SQLITE_OK)
    {
        printf("接続成功!\n");
    }
    else
    {
        printf("接続失敗!\n");
        ret = sqlite3_close(connect);    //失敗でも接続を切断!
        if (ret != SQLITE_OK)
        {
            printf("切断失敗!\n");
        }
        return -1;  //エラー!
    }

    //接続を切断!
    ret = sqlite3_close(connect);
    if (ret == SQLITE_OK)
    {
        printf("切断成功!\n");
    }
    if (ret != SQLITE_OK)
    {
        printf("切断失敗!\n");
    }

    return 0;
}


13.プログラムが正常に実行したら、test.sqlite3というファイルが作成されている。

結果

もし、本当の設定方法をご存知の方は、宜しければ何卒...ご教授下さい...

◎参考にさせていただいたサイト様
https://seraphy.hatenablog.com/entry/20061031/p1
https://rinor.hatenablog.com/entry/2015/07/30/033206
https://qiita.com/Ki4mTaria/items/bce1a6080e537fb1c949
https://dcravey.wordpress.com/2011/03/21/using-sqlite-in-a-visual-c-application/