c++生成嵌套dll的简单方式

By admin at 2 小时前 • 0人收藏 • 7人看过

目标: 生成一个 C.dll 内部调用A.dll , 这两个dll都由自己生成.

目的: a.dll作为基础函数, C.dll 是上层算法函数. 这样算法工程师和底层工程师可以同步进行. 算法隔离.


  1. 新建c++ 生成dll工程,  修改工程[目标文件名]=A

    image.png

  2. 在属性[高级]里改输出调用约定=stdcall

    image.png

  3. 代码生成里设置[运行库]=MT (将c++运行库集成到dll内)

    image.png

  4. 新建 a.def 导出名称文件, 编写如下:

    image.png

  5. 编译后, 在输出目录中找到 a.dll 和 a.lib文件, 复制到 C.dll工程里去

    image.png

  6. 在C.dll 工程里添加 [资源文件]->[新增]->[a.lib], 

    image.png

  7. 在i项目管理里[头文件] 添加 a.H头文件

    image.png

  8. 手动增加a.dll里面需要在c.dll内部使用的函数, 直接添加函数即可, 无需添加任何其他设置.

    image.png

  9. 同样的设置C.dll工程属性, 然后编译导出dll即可.


1 个回复 | 最后更新于 2 小时前
2 小时前   #1

解释下: 

  1.   工程里添加了.def 和 项目属性里设置了 stdcall 约定, 并不代表生成的 .lib 文件就是stdcall约定, lib内部的名字还是 @xxGetHand?@@  这样的i形式 ,  所以在c.dll工程里就需要将这个lib文件添加到[资源文件]里面去, 要不然会提示找不到函数.

  2. .def文件 直接写 EXPORTS ..... , 不要增加  library "xxx" 这句话,  因为如果a.dll工程里你在属性里修改了导出dll的名字, a .lib 内部其实用的还是 原工程名 ,比如"xxxlib.dll" 这样的引用.


登录后方可回帖

登 录
信息栏
本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网
在线小工具
Pojie.Online

才仁机械


网站地图SiteMap

Loading...