VS2017动态链接库(.dll)的生成与使用

最近项目需要生成dll,这里介绍我生成和调用dll的流程。环境是vs2017

一,dll的生成

  1. C++代码是在普通环境下开发调试的(文件->新建->项目->空项目)一定要注意平台是x86还是x64!!

  2. 把正确的代码放到生成可以生成dll的环境中(文件->新建->项目->Visual C++的控制台应用)
    在这里插入图片描述其实这里我也采用过 文件->新建->项目->Visual C+±>Windows 桌面 -> 动态链接库(DLL) 生成解决方案的时候遇到了找不到头文件的问题,感觉比较麻烦,所以还是采用控制台应用修改为dll的方式

  3. 新建 添加头文件和源文件的代码

在这里插入图片描述
定义动态链接库的接口,接口的头文件和源代码文件需要以下操作
在这里插入图片描述
此处参考https://zhuanlan.zhihu.com/p/651022331

  1. 右键解决方案->属性->配置属性->常规->配置类型 选择动态库(.dll)

在这里插入图片描述
这里需要注意红框位置平台要选择正确和代码的运行平台要一致~
在这里插入图片描述

  1. 生成->重新生成解决方案

在这里插入图片描述
下面提示 ”成功:1个“…则代表dll已经成功生成了
在这里插入图片描述
检查debug文件夹下是否有.dll和.lib文件生成
在这里插入图片描述

二,调用dll

  1. 新建项目(文件->新建->项目->Visual C++的控制台应用)一定要注意平台是x86还是x64,和前面保持一致!!

  2. 将步骤一生成的.dll .lib和头文件放到新建项目的如图文件夹
    在这里插入图片描述

  3. 添加一个源文件调用主函数,注意要include头文件
    在这里插入图片描述

  4. 绑定头文件(头文件->添加->现有项)
    在这里插入图片描述

  5. 添加.lib到资源文件
    在这里插入图片描述

  6. 生成->重新生成解决方案
    在这里插入图片描述
    运行结果如下
    在这里插入图片描述

  7. 点绿色三角执行
    在这里插入图片描述

执行窗口如下
在这里插入图片描述

三,中间遇到的问题

生成dll解决方案的时候报错

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "void __cdecl AddAnAdd(int,int (__cdecl*)(int,int))" (?AddAnAdd@@YAXHP6AHHH@Z@Z),该符号在函数 _main 中被引用 DLLTest D:\vs\DLLTest\DLLTest\test.obj 1

解决办法:
后来新创建了一个空项目,然后再创建cpp文件和h文件,再敲代码,然后操作:解决方案资源管理器->(右键点击)AlexDll->属性->配置属性->常规->配置类型:动态库(.dll),再重新生成解决方案就成功了。

最后验证dll的时候,生成解决方案再点击下面的绿色三角就可以正常运行了,而且在主函数加入了下面代码可以暂停窗口

system("pause");

在这里插入图片描述
报错
在这里插入图片描述
解决方法
在这里插入图片描述
报错
在这里插入图片描述
解决方法
注意release和debug模式下的opencv依赖库不同,参考(https://blog.csdn.net/weixin_42450976/article/details/125749045
在这里插入图片描述

参考网址:https://blog.csdn.net/m0_37170593/article/details/76445972

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值