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

news2024/11/19 4:39:19

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.coloradmin.cn/o/1351839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode-剑指offer】--15.找到字符串中所有字母异位词

15.找到字符串中所有字母异位词 方法&#xff1a;滑动窗口 class Solution {public List<Integer> findAnagrams(String s, String p) {List<Integer> ans new ArrayList<>();int m s.length(),n p.length();if(n > m){return ans;}int[] cnt1 new i…

部署上传漏洞的靶场环境upload-labs

1、工具介绍 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关&#xff0c;每一关都包含着不同上传方式。 upload-labs靶场开源地址&#xff1a;&#xff1a;https://…

Android14之audit2allow自动生成Selinux规则(一百七十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

k8s的声明式资源管理

在k8s当中支持两种声明资源的方式&#xff1a; 1、 yaml格式&#xff1a;主要用于和管理资源对象 2、 json格式&#xff1a;主要用于在API接口之间进行消息传递 声明式管理方法(yaml)文件 1、 适合对资源的修改操作 2、 声明式管理依赖于yaml文件&#xff0c;所有的内容都…

使用GPTs+Actions自动获取第三方数据

目录 安装插件与GPT对话联网插件首先,创建GPTs。 Voxscript 官网:https://voxscript.awt.icu/index.htmlOpenAI Schema:https://voxscript.awt.icu/swagger/v1/swagger.yamlServer URL: servers: url: https://voxscript.awt.icu安装插件 要使用这个插件&

【Linux】set命令使用

set命令 设置所使用shell的执行方式&#xff0c;可依照不同的需求来做设置。 语法 set [参数]选项及作用 执行令 &#xff1a; man set 执行命令结果 参数 -a  标示已修改的变量&#xff0c;以供输出至环境变量。-b  使被中止的后台程序立刻回报执行状态。-C  转向所…

draw流程图工具导入云原生(CNCF)相关控件

目录 1、通过draw导入xml文件&#xff0c;获取云原生相关的空间 2、引用自己的资源链接&#xff1a; 1、通过draw导入xml文件&#xff0c;获取云原生相关的空间 导入资源图库&#xff0c;资源放在下方&#xff0c;大家可以下载&#xff1a; 2、引用自己的资源链接&#xff1a;…

全面PDF分析:创建PDF解析API,可商业用

为什么我要自己制作这个接口?需求如下: 我需要对PDF内容进行深入分析。无论是总结PDF内容,还是基于PDF内容提出问题,首先我都需要提取出文本信息。经过市场调查,我发现缺乏可靠的PDF解析API服务。即便是付费服务,也没有发现特别合适的产品,大多数都是现成的网站工具。文…

【LabVIEW FPGA入门】创建第一个LabVIEW FPGA程序

本教程仅以compactRIO&#xff08;FPGA-RT&#xff09;举例 1.系统配置 1.1软件安装 FPGA-RT 1. LabVIEW Development System (Full or Professional) 2. LabVIEW Real-Time Module 3. LabVIEW FPGA Module 4. NI-RIO drivers 1.2硬件配置 1.使用线缆连接CompactRIO至主机…

vue3(十三)-基础入门之路由配置与重定向

一、一级路由与重定向 1、创建 App.vue 在父组件中导入子组件 Navbar <template><div><navbar></navbar></div> </template><style lang"scss"></style><script> import navbar from /components/Navbarex…

[GKCTF 2020]cve版签到

[GKCTF 2020]cve版签到 wp 信息搜集 题目页面&#xff1a; 页面中有提示&#xff1a;You just view *.ctfhub.com 点一下 View CTFHub 会回弹一些信息&#xff1a; 抓包看看&#xff1a; url 传参&#xff0c;判断是 ssrf 。但是当我将其改为 http://www.baidu.com 或者是…

2024年PMP考试新考纲-【人员领域】真题解析

1前面的文章中&#xff0c;华研荟从PMBOK第七版介绍了里面的各个章节最新考纲下的PMP考试真题&#xff0c;并做了详细的解析。 从今天起&#xff0c;我们从另一个角度来看一下PMP的最新考试真题&#xff1a;从新考纲下的三个领域来看。 事实上&#xff0c;PMI官方于2019年6月…

RA-4565SA(汽车串行接口实时时钟模块)

RA-4565SA车载用 保证高温下正常工作-40C ~ 125C&#xff0c;数据保持判断功能&#xff0c;通过一个VL-bit值&#xff0c;可以判断备份后恢复的数据的有效性。32.768kHz频率输出功能&#xff0c;CLKOUT 引脚输出(开漏输出)&#xff0c;可选择输出频率为32.768kHz, 1024Hz, 32Hz…

Mars3d的BusineDataLayer应该传data格式实现聚合效果

问题&#xff1a; 1.通过【Mars3d】加载new mars3d.layer.BusineDataLayer(的如果不用url使用data的话&#xff0c;格式应该是什么样子的呢&#xff1f; 相关说明&#xff1a;实质就是就是GraphicLayer&#xff0c;自己加graphic进去。 使用data的话要否需要用onCreateGraph…

@EnableXXX注解+@Import轻松实现SpringBoot的模块装配

文章目录 前言原生手动装配模块装配概述模块装配的四种方式准备工作声明自定义注解 导入普通类导入配置类导入ImportSelector导入ImportBeanDefinitionRegistrar 总结TODO后续--条件装配 前言 最早我们开始学习或接触过 SSH 或者 SSM 的框架整合&#xff0c;大家应该还记得那些…

Python图像处理:批量添加水印的优雅实现与进阶技巧

1. 简介 在日常图像处理中&#xff0c;为图片添加水印是一项常见任务。有多种方法和工具可供选择&#xff0c;而今天我们将专注于使用Python语言结合PIL库批量添加水印。 需要注意的是&#xff0c;所选用的图片格式不应为JPG或JPEG&#xff0c;因为这两种格式的图片不支持透明…

vscode中增加参数的一个方法

1 在settings.json 文件中增加参数 2. 在参数中配置 这里也是ok的

Python爬虫系列-有道批量翻译英文单词-注音标版

爬虫系列更新-第二篇文章——《Python爬虫系列-有道批量翻译英文单词-注音标版》 之前发布计算机英文单词时研究了下,怎么把一个含有大量英文单词的txt文件翻译成如下格式&#xff1a; 如上图,左边图片是需要翻译的txt文本,右边图片是翻译后的txt文本。 运行的实际界面效果。 …

电脑如何屏幕录制?轻松录制高清视频

在当今信息化的时代&#xff0c;电脑已经成为工作和生活的重要工具。无论是在进行演示、教学还是记录重要操作步骤时&#xff0c;屏幕录制都是非常有用的。可是电脑如何屏幕录制呢&#xff1f;本篇文章将介绍三种常见的电脑屏幕录制方法&#xff0c;通过学习这些方法&#xff0…

Vue中的计算属性与监听器

聚沙成塔每天进步一点点 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每篇文章都致力于提供清晰、深入的参考资料,让你能够更轻松、更自信地理解和掌握 Vue.js 的核心概念和技…