这几天为了完成小学期面向对象程序设计的大作业不得不捣鼓MFC。 But,MFC相关的资料少之又少,不少资料甚至还停留在VC++ 6.0的时代。
下载Sqlite官方的dll和def文件及源代码 链接: https://sqlite.org/download.html
利用lib命令编译lib文件(lib.exe通常在Visual Studio的某个安装目录下) 先将刚刚下载的2个压缩包中的文件解压到同一个文件夹,然后执行
1 lib /def:sqlite3.def /machine:x64 /out:sqlite3.lib
执行结果如下:
1 2 3 4 5 PS D:\sqlite-dll-win64-x64> lib /def:sqlite3.def /machine:x64 /out:sqlite3.lib Microsoft (R) Library Manager Version 14.29.30040.0 Copyright (C) Microsoft Corporation. All rights reserved. 正在创建库 sqlite3.lib 和对象 sqlite3.exp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 PS D:\sqlite-dll-win64-x64> ls 目录: D:\sqlite-dll-win64-x64> Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/6/19 2:52 687509 shell.c -a---- 2021/6/19 2:52 8312766 sqlite3.c -a---- 2021/6/19 7:23 7568 sqlite3.def -a---- 2021/6/19 7:23 2127360 sqlite3.dll -a---- 2021/9/2 18:16 46811 sqlite3.exp -a---- 2021/6/19 2:52 588809 sqlite3.h -a---- 2021/9/2 18:16 77424 sqlite3.lib -a---- 2021/6/19 2:52 35437 sqlite3ext.h
可以看到lib文件已经正常生成了。
然后为项目引入sqlite3.dll,sqlite3.def和sqlite3.h文件
测试一下 添加button控件
给按钮添加响应事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 void CMFCApplication2Dlg::OnBnClickedButton1 () { sqlite3* m_sql_database; int rc; char * err_msg = NULL ; char sql[200 ] = "" ; rc = sqlite3_open ("./data.db" , &m_sql_database); if (rc) { sqlite3_close (m_sql_database); MessageBox (_T("数据库打开失败,请检查后再操作!" ), NULL , MB_ICONSTOP); return ; } sprintf_s (sql, "CREATE TABLE IF NOT EXISTS test(id int PRIMARY KEY NOT NULL, item varchar(20) NOT NULL UNIQUE)" ); if (sqlite3_exec (m_sql_database, sql, NULL , NULL , &err_msg) != SQLITE_OK) { MessageBox (_T("Error!" ), NULL , MB_ICONSTOP); return ; } }
编译运行,点击按钮,可以看到当前目录下已经生成了data.db文件,说明数据库已经成功创建了。