当前位置: 首页 > news >正文

Mysql 动态链接库配置步骤+ 完成封装init和close接口

1、创建新项目 动态链接库dll

 2、将附带的文件都删除,创建LXMysql.cpp

 3、项目设置

3.1、预编译头,不使用预编译头

3.2、添加头文件

3.3、添加类

3.4、写初始化函数

4、项目配置

4.1、右键解决方案-属性-常规-输出目录 ..\..\bin

4.2、生成lib文件  右键解决方案-链接器-高级-导入库..\..\lib\

4.3、运行之后可以看到 bin目录下生成dll文件

但是lib目录生成失败,解决  在class类里面添加一个导出__declspec(dllexport)

可以看到已经有啦

4.4、测试一下

 5、创建执行项目test_LXMysql,右击解决方案,添加新建项目,位置在与LXMysql一样,将项目创建在同一个解决方案当中

6、设置启动项目,项目依赖项

 7、引入LXMysql.h,发现报错

7.1、解决:

点击test_LXMysql解决方案的属性,最好存放位置在一起,维护起来比较方便。更改c/C++附加包含目录为..\LXMysql,

如果不对的话,直接编辑路径,找到自己的LXMysql,**必须是LXMysql.cpp的上一个目录

7.2、 预编译头,不使用预编译头

7.3、生成一个对象,

7.3.1、点击运行--报错 找不到Init函数,原因是库没有引用

 问题解决: 点击test_LXMysql的解决方案,点击属性-链接器-附加库目录..\lib

 点击属性-链接器-输入-附加依赖项 LXMysql.lib

 7.3.2、报错,找不到LXMysql.dll文件

解决: 点击test_LXMysql的解决方案,点击属性-常规-输出目录 ..\bin

 点击test_LXMysql的解决方案,点击属性-调试-工作目录 ..\lib

7.4、点击执行,运行成功

8、如果到这里还不对的话

 如果还报错点的话 ,头文件有问题,因为在LXMysql里面是__declspec(dllexport),但是在test_LXMysql里面需要import。windows动态链接库的问题,同一个文件得区分谁调用的

解决:定义一个宏

***这个问题在vs2022里面没有出现,大家如果出现的话就改一下如果可以直接运行,就不用改了。

8.1、如果还报错,将常规下的输出目录也改成..\bin

9、总结: 

在每个程序编译的时候都有三个错误

9.1、找不到头文件的错误

                解决:定义一个宏

9.2、 找不到定义的错误,函数库没有引用 (找lib文件)

9.3、执行错误 (找dll文件)输出路径

10、测试Ini 和close接口

 

 

10.1 执行,运行成功

http://www.lryc.cn/news/274571.html

相关文章:

  • 哈希一致性算法
  • 基于SpringBoot的在线考试系统绿色
  • 设计模式:原型模式
  • Qt5+VS2013兼容XP方法
  • GitHub Copilot 最佳免费平替:阿里通义灵码
  • 体系化的进阶学习内容
  • SpringBoot解决前后端分离跨域问题:状态码403拒绝访问
  • 【linux】更改infiniband卡在Debian系统的网络接口名
  • SPRING BOOT发送邮件验证码(Gmail邮箱)
  • Liunx安装FTP和SFTP
  • 【Mars3d】new mars3d.layer.GeoJsonLayer({不规则polygon加载label不在正中间的解决方案
  • 怎么快速修复mfc140.dll文件?解决mfc140.dll缺失的方法
  • 安全防御之入侵检测与防范技术
  • Leetcode2807. 在链表中插入最大公约数
  • MySQL-DML
  • 开源项目 | 完整部署流程、一款开源人人可用的开源数据可视化分析工具
  • 我建立了一个资源分享群
  • C++中几个常用的类型选择模板函数
  • 【LeetCode】1321. 餐馆营业额变化增长
  • 【网络技术】【Kali Linux】Wireshark嗅探(八)动态主机配置协议(DHCP)
  • 算法29:不同路径问题(力扣62和63题)--针对算法28进行扩展
  • openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位
  • kubernetes入门到进阶(5)
  • 【字典树Trie】LeetCode-139. 单词拆分
  • pytest常用的第三方插件介绍
  • 【经验】VSCode连接远程服务器(可以使用git管理、方便查看和编辑Linux源码)
  • 机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
  • MySQL学习笔记1: 数据库的简单介绍
  • 【Docker】安装ELK(Docker Compose)
  • 【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用