c++程序导出为dll动态链接库,并实现被调用

前言

在上篇文章中,已经介绍了怎么将python网络模型进行导出,并利用libtorch在C++端进行调用
戳我跳转.

在项目工程中,程序一般需要导出为DLL提供给第三方使用。
此时除.dll、.h、.lib文件外,需一并提供对应所需的libtorch、opencv文件夹,才能实现vs中的环境配置。(即第三方环境需与导出dll的项目一致)(libtorch+opencv+cuda+cudnn)

操作流程

一、将c++程序导出生成dll动态链接库

【1】.创建新项目—动态链接库
在这里插入图片描述
【2】.在项目中建立Dll1.h(名称自定)头文件
内容如下:
在这里插入图片描述
调试中可能出现的错误:
1、显示无法打开某某源文件
解:配置环境问题,可能某个库无法正确读取,应在相关设置中加入其路径
仔细检查
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、配置好环境后,错误依然存在
解:注意编译版本和平台的设置,需和配置环境时的设置一样,否则配置无效,错误依然存在。
在这里插入图片描述
在这里插入图片描述
3、程序没有问题,但调试时出现大量不知名错误
解:加载头文件的顺序问题,torch头文件的加载不能置于最开始(即#include <torch/script.h> )

【3】.在项目中建立Dll1.cpp(名称自定)源文件
内容如下:
在这里插入图片描述
【4】.开始调试

在这里插入图片描述
出现以下窗口,便为调试成功(因为生成文件为.dll,而不是.exe,故无法启动
在这里插入图片描述
此时,在项目目录/X64/debug下将生成.dll、.lib文件
在这里插入图片描述

二、在c++程序中调用生成的dll动态链接库

【1】.新建项目用于测试调用上述生成的.dll文件
【2】.将上生成的lib、dll文件复制到要实现调用的项目目录下
在这里插入图片描述
【3】.将原始头文件复制到要实现调用的项目目录下
在这里插入图片描述
【4】.打开dll_test.sln,在项目中添加现有项(即上复制的头文件),打开并对其内容做相关修改
在这里插入图片描述
【5】.在项目中新建.cpp源文件,添加代码实现对dll的调用,如下:
在这里插入图片描述
【6】.点击调试
在这里插入图片描述
说明调用成功!!

:该方式仅适用于在调试模式下运行,若要运行.exe文件调用dll,需将.h、.dll、.lib复制到X64/debug/文件下

常见错误:

1、显示找不到(无法打开)Dll1.lib文件
在项目—》属性—》链接器—》附加库目录中
加入.lib放置的路径

-----------tbc----------

【作者有话说】
以上内容仅为博主自主整理分享,很多内容也是来源于网络,若有侵权,请私聊告知
大家有任何问题可在评论区讨论交流~

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

8倍

谢谢大佬~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值