关于vs2013的mysql配置问题说明

C/C++连接MySql数据库 
本文对如何使用MySql的API连接MySql数据库,开发环境为VS2013.


一、VS2013工程设置工作


首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE,


将连接器->系统->子系统 选择为控制台。


由于我们要使用Mysql的API,并且我们机子上肯定安装了Mysql数据库,所以我们要将工程的头文件路径指向Mysql安装目录的同文件mysql.h所在的位置,将连接库路径指向libmysql.lib所在的路径,


在我的机子上,Mysql 的安装路径为:C:\Program Files\MySQL\MySQL Server 5.5


我们需要把VS2013的工程中的头文件路径和连接库路径指向上面的两个地方:


将x项目属性页的C/C++->常规->附加包含目录指向:C:\Program Files\MySQL\MySQL Server 5.5\include


将项目属性页的链接器->常规->附加库目录指向:C:\Program Files\MySQL\MySQL Server 5.5\lib


将链接器->输入->附加依赖项中添加libmysql.lib。


在资源管理器那一界面,项目->属性->配置管理器(在右上角)->活动解决方案平台->新建->键入或选择新的平台->最上面的改为X64其他不管。


如果不设置链接器->输入->附加依赖项中添加libmysql.lib,那么会出现如下的错误:




1>------ 已启动全部重新生成: 项目: MySql-Connect, 配置: Debug Win32 ------ 
1>正在删除项目“MySql-Connect”(配置“Debug|Win32”)的中间文件和输出文件 
1>正在编译... 
1>MySql_Connect.cpp 
1>x:\编程练习\c-c++\c\mysql_connect.cpp(35) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 
1>        d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明 
1>x:\编程练习\c-c++\c\mysql_connect.cpp(72) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 
1>        d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 参见“sprintf”的声明 
1>x:\编程练习\c-c++\c\mysql_connect.cpp(86) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 
1>        d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 参见“sprintf”的声明 
1>正在编译资源清单... 
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1 
1>Copyright (C) Microsoft Corporation.  All rights reserved. 
1>正在链接... 
1>LINK : 没有找到 d:\我的文档\Visual Studio 2013\Projects\MySql-Connect\Debug\MySql-Connect.exe 或上一个增量链接没有生成它;正在执行完全链接 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_close@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_free_result@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_num_fields@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_fetch_row@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_store_result@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_error@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_real_query@12,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_select_db@8,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用 
1>d:\我的文档\Visual Studio 2013\Projects\MySql-Connect\Debug\MySql-Connect.exe : fatal error LNK1120: 10 个无法解析的外部命令 
1>生成日志保存在“file://d:\我的文档\Visual Studio 2013\Projects\MySql-Connect\MySql-Connect\Debug\BuildLog.htm” 
1>MySql-Connect - 11 个错误,3 个警告 
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========




二、利用Mysql库提供的API编写连接Mysql和从Mysql中取出数据的代码


#include "windows.h"
#include "stdio.h"
#include "winsock.h"
#include "mysql.h"


int main()
{
MYSQL * mysql;
MYSQL_RES *res;
MYSQL_ROW row;
unsigned int t;
int count = 0;
mysql = (MYSQL *)malloc(sizeof(MYSQL));
mysql_init(mysql);
mysql_real_connect(mysql, "localhost", "root", "666666", 0, 3306, NULL, 0);//注意我的密码是666666,你得修改为自己的。否则会有问题。
mysql_query(mysql, "create database caigaojian");
mysql_select_db(mysql, "caigaojian");
mysql_query(mysql, "create table mine(id int not null primary key auto_increment,name char(20)) ");
mysql_query(mysql, "insert into mine values(123,"caigaojian") );
mysql_close(mysql);
system("pause");
return 0;
}


总结:
1.运行的时候一直提示libmysql.dll没有,那么请在windows里面的system32里面加上libmysql.dll。我的是win7 64位。至于你的要在哪加,加哪一文件,你自己试试。
2.把debug的win32改为 X64是必须的。x64、X64貌似都可以。你自己试试。
3.在写程序时,我出现的问题是,如果#include "windows.h"写在#include "mysql.h"它的后面,总提示一个socket“;”的错误。这里你需要改头文件的顺序。
4.至于一劳永逸的配置,我不太清楚。貌似在“属性管理器”里面的“Microsoft.Cpp.X64.user”配置,可以不用再配。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值