vs2013下C/C++连接mysql数据库相关问题

来源:互联网 发布:snmp采集哪些数据 编辑:程序博客网 时间:2024/06/05 15:53

项目需要,写了一个控制台程序,其中需要连接数据库查询数据并将查询结果通过socket发送到服务器端。由于之前没做过相关的东西,基本小白,做起来也相当费劲。好在最终解决了。现将问题解决过程记录下来,希望能帮到更多的人。

首先,电脑上需要搭建好mysql数据库。至于版本需要注意:mysql版本最好和系统一致。即64位系统对应64位的mysql , 32位的系统对应32位的mysql。

其次,在VS中新建工程(关于工程的创建过程这里不再赘述)。然后工程中引入mysql的库函数和头文件。这里我们需要做的有两步。

(1)将工程的头文件路径指向Mysql安装目录的mysql.h头文件所在位置。
(2)将链接库路径指向libmysql.lib所在路径。

关于mysql安装目录下没有mysql.h文件的情况,解决办法见下文。

具体操作如下:
1.打开VS工程,找到工程(project)->项目属性(property)
这里写图片描述

点击项目属性后弹出以下窗口

这里写图片描述

2、依次点击属性页的 C/C++ ->General,在右侧找到Additional Include Directories,在其后的编辑框中引入mysql.h头文件的路径(在mysql安装目录下的include文件夹下)。

3、在该属性页中,找到Linker -> General ,在其右侧找到Additional Library Directories,在其后的编辑框中引入mysql的库文件libmysql.lib文件所在的路径。如图所示:
这里写图片描述

在Linker->Input->Additional Dependencies中添加libmysql.lib

这里写图片描述

这里写图片描述
在弹出的页面内输入 libmysql.lib 确定保存即可

4、打开工程中的资源文件,在文件中加入以下代码:

#include <stdio.h>#include <Winsock2.h>#include <mysql.h>#pragma comment(lib, "libmysql.lib")

这里有几点需要注意:
1、有些人mysql的安装目录下并没有include和lib文件夹。就需要下载mysql的源代码(源代码文件较大,具体下载方法自行百度)。或者 点击这里下载 。然后将相应的文件夹复制粘贴到mysql安装目录下(这就需要对上述配置中引入的文件路径稍作修改)。
2、把libmysql.dll复制粘贴到编译生成的exe目录下。
3、上述第4步中引入文件的顺序需要注意 mysql.h一定要在Winsock2.h后引入。
4、引入的库文件和头文件的版本最好与数据库版本一致。

至此,连接数据库的具体过程结束。但这并不意味着万事大吉。在程序的编译过程中可能会遇到以下问题:
1、VS提示 LNK2019: unresolved external symbol __mysql_real_connect(_mysql_init、_mysql_error)@reference main …(具体记不太清楚)。
问题原因:
版本的问题,VS下工程默认的时win32平台编译,但是系统和mysql的版本可能是64位的。在32位编译器下编译肯定出错。
解决办法:
将win32编译平台改为x64平台
这里写图片描述

这里写图片描述
此时编译器错误消失。

2、编译程序提示:应用程序无法正常启动0x0000007b。
可能原因:libmysql.dll文件没有复制到.exe文件的目录内。
解决办法:将libmysql.dll文件复制到.exe文件夹内即可。

原创粉丝点击