欢迎投稿

今日深度:

Visusl Studio 2019 使用Sqlite3,动态库&#xff08

Visusl Studio 2019 使用Sqlite3,动态库(


1. 下载

访问官网下载页面(Sqlite 官方下载),从Window区下载编译好的动态库和头文件。

动态库(根据实际需要选择32或64位版本):

解压得到:

源码文件:

解压得到(当然我们只需要sqlite3.h):

2. 生成lib导入库

在实际项目中,为了方便使用动态库我们通常需要lib导入库。下面介绍如何用def和dll生成lib导入库。

利用def和DLL生成lib导入库需要用到VC提供的工具集。

在VS的安装目录下(D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\Hostx64\x64)可根据实际情况选择Hostx86或Hostx64。我们需要拷贝5个文件到已下载的动态库目录中:lib.exe、link.exe、mspdb140.dll、mspdbcore.dll和tbbmalloc.dll。

打开命令提示符,进入到上述的目录中,执行 LIB /MACHINE:X64 /DEF:sqlite3.def

执行完毕,我们就可以看到生成的lib导入库:

3. 使用

打开VS2019,创建一个空白项目,将之前下载的头文件、动态库和lib导入库拷贝在项目下,下面的目录结构仅供参考。

接下来需要设置相应的工程属性,其实也就是VS如何使用第三方库的通常步骤,如果熟悉的情况可以直接跳过。

首先,项目-> 属性->C/C++->附加包含目录,添加头文件路径:

其次,项目-> 属性->链接器->附加库目录,添加lib导入库路径:

最后,项目-> 属性->链接器->输入->附加依赖项,添加sqlite3.lib

可以简单用以下测试代码验证是否可以正常使用,当然不要忘记DLL拷贝到exe同级目录下:

#include <iostream>

#include "sqlite3.h"


int main(void)
{
    // 创建一个数据库
    sqlite3* sql = NULL;
    const char* path = "Test.db";
    int result = sqlite3_open_v2(path, &sql, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_SHAREDCACHE, NULL);
    if (result == SQLITE_OK) {
        std::cout << "打开数据库连接成功" << std::endl;;
    }
    else {
        std::cout << "打开数据库连接失败" << std::endl;
        return -1;
    }

    // 创建students表
    const char* pCmd = "CREATE TABLE students(name TEXT, score INTEGER);";
    sqlite3_stmt* stmt = NULL;
    result = sqlite3_prepare_v2(sql, pCmd, -1, &stmt, NULL);
    if (result == SQLITE_OK) {
        std::cout << "创建数据表成功" << std::endl;
        sqlite3_step(stmt);
    }
    else {
        std::cout << "创建数据表失败" << std::endl;
        return -2;
    }
    sqlite3_finalize(stmt);

    // 插入一条数据
    pCmd = "INSERT INTO students(name, score) VALUES('Abcd', 100);";
    result = sqlite3_prepare_v2(sql, pCmd, -1, &stmt, NULL);
    if (result == SQLITE_OK) {
        std::cout << "插入数据成功" << std::endl;
        sqlite3_step(stmt);
    }
    else {
        std::cout << "添加数据语句有问题" << std::endl;
    }
    sqlite3_finalize(stmt);

    return 0;
}

创建的数据库如下:

www.htsjk.Com true http://www.htsjk.com/SQLite/45925.html NewsArticle Visusl Studio 2019 使用Sqlite3,动态库#xff0c;从Window区下载编译好的动态库和头文件。 动态库根据实际需要选择32或64位版本 解压得到 源码文件 解压得到当然我们只需要sqlite3.h 2. 生成lib导入...
评论暂时关闭