2.Sqlite3库的使用
在得到了sqlite3.lib、sqlite3.h和sqlite3.dll三个文件以后,我们就可以在我们的程序中使用这个动态链接库了。
在Visual Studio中新建一个Win32控制台应用程序,类型选择“控制台应用程序”,取消“预编译头”,点击“完成”。
在Visual Studio的菜单“项目”中,选择最下方的“属性”,选择左边“VC++目录”,在右边出现的“包含目录”下,添加sqlite3.h文件所在的目录,为了便于管理,我把这三个文件都放在了同一个目录下。
点击确定后,再选择右边的“库目录”下,把.lib文件所在的目录添加进去(由于和头文件在同一个目录下,因此和前面相同)。
最后点击左边的“链接器”,选择下方的“输入”,然后选择右边的“附加依赖性”,输入”sqlite3.lib”,这样,所有必须的库文件都准备好了。
然后试试测试代码:
#include <iostream> #include "sqlite3.h" using namespace std; int main() { sqlite3 *db; int ret; cout << "Sqlite Version:"<<SQLITE_VERSION << endl; ret=sqlite3_open("test.db", &db); if (ret != 0) { cout << "failed to open database." << endl; cout << sqlite3_errmsg(db) << endl; return -1; } cout << "succeeded to open database." << endl; sqlite3_close(db); return 0; }
编译测试一下,通过。
直接运行试试?
报错?当然了,我们使用的sqlite3.lib文件可不是含有可执行代码的静态库,而是给动态库静态加载使用的,因此还必须要有sqlite3.dll文件的支持。这时候有两种做法,一种是把sqlite3.dll加入到系统环境变量里面去,另外一种就是直接把sqlit3.dll放在可执行目录下,两种方法各有优劣,这里不展开细说了。
例如,我把dll文件同可执行文件放到一起,然后运行,会有命令行提示,打开数据库成功,并在文件夹下产生一个名为test.db的数据库文件。
这里还是想吐槽的是打开和关闭数据库的函数,sqlite3_open的第二个参数类型是sqlite3 **,而sqlite3_close 接受的参数类型是sqlite3*,刚开始写代码的可要特别留意了。