热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vc写入mysql数据库无效_VC连接mysql数据库错误:libmysql.lib:fatalerrorLNK1113:invalidmachine解决方法...

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib:fatalerrorLNK1113:inval

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machine type。无效的机器类型,真的是很让人捉急。

发生这个错误的原因是,我在win8.1上安装的是64bit的mysql服务器,而我编译32位的VC程序,连接的是64位的libmysql.lib库,所以会产生 “无效的机器类型(invalid machine type)”的错误提示。

对于这个“error LNK1113”错误的解决方案是:

下载32位的mysql的zip包,大概100多M的那个。解压出来,把lib目录按照,第4步定位lib。这样的话,我们的32位程序编译的时候,链接的就是32位的库,就不会出现上面的链接错误了。也不必换到xp系统上去操作了。

环境说明:

操作系统:windows 8.1

开发工具:VC++6.0

开发的exe:32位程序

数据库服务器:64位的mysql-5.5

引用的数据库lib:32位的mysql-5.7.10-win32.zip(320M)的lib文件夹。

步骤如下:

1.  到官网www.mysql.com下载MySQL安装包:

当然你也可以下载安装mysql*.msi。

2.  安装mysql,在安装过程中如(如果是.msi安装),一定要选上C Include Files / Lib Files,这样在安装后才能在mysql的安装文件夹中找到include和lib文件夹,这些文件夹将在下面的操作用会用到。

3.  把D:\Mysql32\mysql-5.7.10-win32\lib下的libmysql.dll复制并拷贝到C:\WINDOWS\system32下。(这一步我没有做,一样可以编译通过,我是在WIN8.1下验证的,不知在XP或是win-NT中是否需要这一步)。

4. 这也是最关键的一步!打开:工具->选项菜单,找到“目录”标签,可以看到有一个:“显示目录为”的下拉框,选择Library files选项,在其中加入: 【32位的mysql zip解压文件夹】\MySQLServer 5.7\lib\,如图:

985b3ce8e04ee7988eb408e6a2e0d4cf.png

可以看到我这个是32位的lib

5.如果你把libmysql.lib,libmysql.dll复制到程序目录下,别忘了用你下的32位的文件替换原来的。

6.编译运行,成功。

只需要用32位的lib替换64位的lib,这样的话,我们的32位程序编译的时候,链接的就是32位的库,就不会出现上面的链接错误了。

解决方法还是很简单的,就是下载zip包太慢啦。。。。

// test.cpp : Defines the entry point for the console application.

//

#include

#include

#include "StdAfx.h"

#include

#include

#include

#include

using namespace std;

//#pragma comment (lib,"ws2_32.lib")

//#pragma comment(lib,"libmysql.lib")

//不需要单步调试的就注释掉

//#define STEPBYSTEP

void pause(){

#ifdef STEPBYSTEP

system("pause");

#endif

}

void writeToFile(const char *s)

{

FILE *fp=fopen("info.txt","rw");

fprintf(fp,s);

fclose(fp);

}

/* int main()

{

MYSQL mysql;

mysql_init(&mysql); //初始化mysql结构

if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))

printf("\n连接数据库时发生错误!\n");

else

printf("\n连接数据库成功!\n");

mysql_close(&mysql); //释放数据库

return 0;

}*/

int main(int argc, char* argv[]){

cout<

pause();

MYSQL mysql;

if(0==mysql_library_init(0,NULL,NULL))

{

cout<

}else{

cout<

return -1;

}

pause();

if(NULL!=mysql_init(&mysql))

{

cout<

}else{

cout<

return -1;

}

pause();

if(0==mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gb2312"))

{

cout<

}else{

cout<

return -1;

}

pause();

if(NULL!=mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))

{

cout<

}else{

cout<

return -1;

}

pause();

string sql;

sql="select * from sgroup";

MYSQL_RES *result=NULL;

if(0==mysql_query(&mysql,sql.c_str()))

{

cout<

result=mysql_store_result(&mysql);

int rowcount=mysql_num_rows(result);

cout<

unsigned int fieldcount=mysql_num_fields(result);

MYSQL_FIELD *field=NULL;

for(unsigned int i=0;i

{

field=mysql_fetch_field_direct(result,i);

cout

}

cout<

MYSQL_ROW row=NULL;

row=mysql_fetch_row(result);

while(NULL!=row)

{

for(int i=0;i

cout<

}

cout<

row=mysql_fetch_row(result);

}

}else{

cout<

mysql_close(&mysql);

return -1;

}

pause();

/*sql="drop table user_info";

if(0==mysql_query(&mysql,sql.c_str()))

{

cout<

}else{

cout<

mysql_close(&mysql);

return -1;

} */

mysql_free_result(result);

mysql_close(&mysql);

mysql_server_end();

system("pause");

return 0;

}

0a731085fb8de6d1e21e84598373b206.png


推荐阅读
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 在CentOS上构建Ntopng实时网络流量监控平台
    本文详细介绍了如何在CentOS操作系统上安装和配置Ntopng,一个强大的网络流量监控工具。Ntopng能够提供实时的网络流量分析,并通过Web界面展示详细的流量报告。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Kali Linux下Nessus 8.9.1的安装与更新指南
    本文详细介绍了如何在Kali Linux 2019.4 64位系统中安装Nessus 8.9.1,并涵盖了从下载、安装到插件更新及自动化的全过程。同时提供了必要的配置步骤以确保软件能够正常运行。 ... [详细]
  • 本文详细介绍了Java编程语言中的关键字及其用途,包括53个关键字和2个保留字。文章不仅解释了每个关键字的基本功能,还提供了实际应用场景中的使用示例。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
author-avatar
靖惟嘉彦琼云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有