这几天为了完成小学期面向对象程序设计的大作业不得不捣鼓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已经被成功创建了,搞定~