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

配置VS的DLL文件引用目录(两种方案,无需每次生成dll后手动将其复制到exe目录下)

引言

由于项目需要,需在一个项目中引用另一项目封装的dll库,但是还处于开发测试阶段,dll库会出现频繁更新的问题,若每次更新dll后都将lib、dll、.h头文件都按照项目路径依次复制一遍,实在过于繁琐,因此研究了如下两个方案可以实现一键式拷贝dll文件。

1、前置准备

准备做dll库的引用,首先准备3种文件,即.h头文件、dll动态库文件和lib库文件,出于项目文件分类的考虑,我将他们分别放在了include文件夹和Libs文件夹下,这能让我们的项目更简洁;
在这里插入图片描述

2、项目配置

我们做一些简单的配置,这个网上有一大堆教程教,内容大差不差的。
此处配置了头文件所在的路径,完成此处配置后我们在.c或者.cpp文件下只需要#include<头文件名.h>,即可搜索到对应路径下的头文件,避免了打一大串路径让代码显得臃肿。
在这里插入图片描述
而后,在链接器->常规->附加库目录,下添加我们的.lib文件所处的目录,并在链接器->输入->附加依赖项,中添加lib文件的名字。此处的添加用于帮助项目查找到lib文件;
在这里插入图片描述
在这里插入图片描述

3、核心方案1(将dll文件自动复制到exe文件目录下)

步骤3和步骤4选一个进行配置即可。

添加项目生成前指令,通过自动执行该命令,从而将步骤1中的Libs目录下的所有文件复制到exe文件所处目录(实际上此处需要复制的只有dll文件)
参考命令:xcopy /e /r /y $(ProjectDir)Libs $(OutDir)

方案优点:无需手动拷贝,只要把需要的库文件丢到Libs下,项目就能自行拷贝;
方案缺点:若后期项目庞大,dll文件过多,会导致每次拷贝时间过长。
在这里插入图片描述

关于如何配置适合你的项目的指令,如下图所示在编辑指令的时候VS会自动帮我们计算出对应的路径,填写正确的路径即可。
在这里插入图片描述
指令拼接完成后,可以使用工具->命令行->开发者命令提示,进行测试,使用该工具测试的时候需要使用绝对路径做测试,若直接用、"$(ProjectDir)"进行缩写,可能出现命令行无法理解该路径的情况。
在这里插入图片描述
完成如上配置后,在项目每次生成的时候,都会执行对应的命令进行文件拷贝,从而省去了手动拷贝库文件到exe的麻烦。
在这里插入图片描述

4、核心方案2(修改调试环境)

步骤3和步骤4选一个进行配置即可。

在调试->环境,中配置项目调试时的环境。
参考配置:path=%path%;…/dllTest/Libs
其中%path为原有系统路径,…/dllTest/Libs为我们项目的dll库所在路径。

方案优点:无需像步骤3那样进行拷贝,更节约时间;
方案缺点:进行exe发布的时候,还是需要将Libs目录中库拷贝出来的,不然客户不能用,此处只是方便了我们调试。
在这里插入图片描述

相关文章:

  • 表面等离子共振技术(SPR)在小分子与蛋白质相互作用研究中的应用
  • MyBatis 动态 SQL 完整笔记
  • 世界少棒联盟(Little League Baseball)·棒球1号位
  • 【LangChain基础系列】深入全面掌握文本分类
  • C——VS的调试技巧
  • 更多 QVariant 使用案例
  • Python序列Day3
  • 如何对 Oracle 日志文件进行校验
  • 钯铂贵金属分离回收树脂
  • Nginx 配置多个监听端口
  • obj = null; 赋值null之前没有其他引用指向obj对象,那么,当obj=null时,会被垃圾回收机制立即回收吗?
  • 编程题 02-线性结构2 一元多项式的乘法与加法运算【PAT】
  • PostgreSQL 的 pg_current_logfile 函数
  • 【Ubuntu】Netplan静态网络配置
  • 缺乏实体人形机器人的主流高精度仿真方案
  • Flutter接入ProtoBuff和原生Android通信【性能最优】
  • tmux 入门与实用指南
  • 39、.NET GC是什么? 为什么需要GC?
  • 深泽多层电路在PCB行业中属于什么水平
  • 初识Linux · 传输层协议TCP · 上
  • 公安部部署“昆仑2025”专项工作,严打环食药等领域突出犯罪
  • 代理销售保险存在误导行为,农业银行重庆市分行相关负责人被罚款0.1万元
  • 前4个月我国货物贸易进出口同比增长2.4%,增速较一季度加快1.1个百分点
  • 苹果Safari浏览器上的搜索量首次下降
  • 商务部再回应中美经贸高层会谈:美方要拿出诚意、拿出行动
  • 老铺黄金拟配售募资近27亿港元,用于门店拓展扩建及补充流动资金等