当前位置: 首页 > 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目录中库拷贝出来的,不然客户不能用,此处只是方便了我们调试。
在这里插入图片描述

http://www.xdnf.cn/news/338419.html

相关文章:

  • vue2 两种路由跳转方式
  • window 显示驱动开发-处理内存段(二)
  • C++GO语言微服务基础技术①
  • IDEA 2024 版本配置热部署
  • 【计算机网络】--tcp三次握手
  • 【Pandas】pandas DataFrame ewm
  • 2024年 AI大模型我该买一张什么显卡?
  • 好消息!PyCharm 社区版现已支持直接选择 WSL 终端为默认终端
  • 最新Spring Security实战教程(十四)OAuth2.0精讲 - 四种授权模式与资源服务器搭建
  • 【hadoop】Sqoop数据迁移工具的安装部署
  • 22、近端策略优化算法(PPO)论文笔记
  • 深入理解Spring缓存注解:@Cacheable与@CacheEvict
  • 避免数据丢失:在存储测试数据之前,要做好Redis持久化
  • SyntaxError: Non-UTF-8 code starting with ‘\xe5‘ in file
  • 仓储车间安全革命:AI叉车防撞装置系统如何化解操作风险
  • 晶振:智能设备的“心跳”如何支撑5G与航天
  • Spring Boot 启动原理的核心机制
  • STM32-模电
  • 关于汇编语言与程序设计——单总线温度采集与显示的应用
  • React 笔记[1] hello world
  • 【程序员AI入门:应用开发】8.LangChain的核心抽象
  • 基于springboot+vue的校园部门资料管理系统
  • 2025最新免费视频号下载工具!支持Win/Mac,一键解析原画质+封面
  • 小刚说C语言刷题—1341银行存款问题
  • 到达最后一个房间的最少时间II 类似棋盘转移规律查找
  • python打卡day19
  • 爱普生FC2012SN晶振在TWS蓝牙耳机中的应用优势
  • 代理服务器
  • 《Zabbix Proxy分布式监控实战:从安装到配置全解析》
  • uniapp|获取当前用户定位、与系统设定位置计算相隔米数、实现打卡签到(可自定义设定位置、位置有效范围米数)