又是踩坑的一天
1.下载文件
mysql++ 下载地址:http://tangentsoft.net/mysql++/
mysql 下载地址:http://dev.mysql.com/downloads/mysql/
2.准备文件
mysqlpp_d.dll和mysqlpp_d.lib,mysqlpp.dll和mysqlpp.lib
上面分别是在Debug和Release下生成的文件
解压mysql++压缩包
打开vc2008项目,VS版本较新直接升级项目,重定解决方案目标
在打开的众多项目中,大多数都是示例,我们只需编译mysqlpp
编译前准备
项目->属性->VC++目录,包含目录和库目录
包含目录添加:
添加mysql的include目录
这个直接填下载的mysql解压包里面的include目录,D:\person\Project\DLL\mysql-8.0.19-winx64\include;
库目录添加
添加mysql的lib目录
这个直接填下载的mysql解压包里面的include目录,D:\person\Project\DLL\mysql-8.0.19-winx64\lib;
附加依赖项
链接器->输入->附加依赖项 添加wsock32.dll;libmysql.lib;
将DD:\person\Project\DLL\mysql-8.0.19-winx64\lib(下的libmysql.dll复制到项目中去,和.cpp,.h文件位于同一路径下(这一步没用到)
编译mysqlpp,生成所需的mysqlpp_d.dll和mysqlpp_d.lib(debug下)或mysqlpp.dll和mysqlpp.lib(release下)
3.使用mysql++
1.添加文件
项目->属性->VC++目录,包含目录和库目录
包含目录添加:
添加mysql的include目录和mysql++的include目录(注意这里有顺序要求,mysql在前,mysql++在后)
1,mysql的include目录
直接用下载解压的文件 D:\person\Project\DLL\mysql-8.0.19-winx64\include;
2,mysql++的include目录
添加mysql++的include目录
这个需要用mysql++目录下的install.hta生成
我这里生成的目录是D:\person\Project\DLL\MySQLlib\include;
库目录添加
这里是mysqlpp_d.dll和mysqlpp_d.lib,mysqlpp.dll和mysqlpp.lib、libmysql.lib、libmysql.dll文件夹
附加依赖项
链接器->输入->附加依赖项 添加mysqlpp.lib;
(*也可以在程序代码的开始处加上#pragma comment(lib,“D:\person\Project\DLL\MySQLlib\mysqlpp.lib”)
来导入mysqlpp.lib)
2.加文件
将mysqlpp.dll和libmysql.dll复制到项目中去,和.cpp,.h文件位于同一路径下
至此,应该配置完了
#pragma comment(lib,"D:\\person\\Project\\DLL\\MySQLlib\\mysqlpp.lib")
//#include <stdio.h>
//#include "mysql++.h"
//#pragma comment(lib, "mysqlpp_d.lib")
//int main()
//{
// mysqlpp::Connection con(false);
// if (con.connect("test_db", "192.168.126.129", "root", "123456", 3306))
// {
// return 1;
// }
// return 0;
//}
#include <mysql++.h>
//#include "mysql++.h"
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
mysqlpp::Connection conn(false);
//mysqlpp::SetCharsetNameOption *opt = new mysqlpp::SetCharsetNameOption("gbk");
//conn.set_option(opt);
if (conn.connect("test_db",
"192.168.126.129",
"root",
"123456"))
{
conn.query("set names 'gbk' ");
mysqlpp::Query query = conn.query("select * from book");
mysqlpp::UseQueryResult res = query.use();
if (res)
{
while (mysqlpp::Row row = res.fetch_row())
{
cout << setw(9) << "BookName:" << row["bookname"] << endl;
cout << setw(9) << "Size:" << row["size"] << endl;
}
}
else
{
cerr << "Failed to get item list: " << query.error() << endl;
return 1;
}
}
//else
//{
// cerr << "DB connection failed: " << conn.error() << endl;
// return 1;
//}
//system("pause");
}
在exe文件夹下面要加入两个dll,在mysql的bin目录下