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

C++学习系列之DLL动态库使用

C++学习系列之DLL动态库使用

  • 啰嗦
  • 动态库的创建
  • 动态库的调用函数生成
    • 1.需要头文件函数定义(头文件)
    • 2.需要函数定义(函数文件)
    • 3.动态库中的头文件
    • 4.动态库中的主文件
    • 5.运行查看是否存在C#的调用的入口点
    • 6.C#调用
  • 总结


啰嗦

项目需要+自我学习和摸索。


动态库的创建

后续添加学习过程,先放如何产生使用函数。

动态库的调用函数生成

1.需要头文件函数定义(头文件)

class xx{
publicdouble addd(double x, double y);
}

2.需要函数定义(函数文件)

double xx::addd(double x, double y)
{return x + y;
}

3.动态库中的头文件

#ifdef IMPORT_DLL
#else
#define IMPORT_DLL extern "C" _declspec(dllexport)
#endif // IMPORT_DLL
IMPORT_DLL double addd(double x, double y);

4.动态库中的主文件

double addd(double x, double y)
{return x + y;
}

5.运行查看是否存在C#的调用的入口点

找到dumpbin.exe,运用CMD运行。在dumpbin.exe的相关路径下,使用下面语句打开对应的dll。

dumpbin -exports (dll的路径)

在这里插入图片描述

6.C#调用

public class test{[DllImport("DLL1.dll", CallingConvention = CallingConvention.Cdecl)]public static extern double addd(double x, double y);}
double y=test.addd(1,2);

在这里插入图片描述


总结

小Demo尝试,在做深度学习。

http://www.lryc.cn/news/134302.html

相关文章:

  • Java实现钉钉企业内部应用机器和自定义机器人发送消息
  • 基于QT4的GPX文件编辑器开发
  • 树结构使用实例---实现数组和树结构的转换
  • 论文阅读_条件控制_ControlNet
  • 全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力
  • 【算法题】2769. 找出最大的可达成数字
  • 023:vue中解决el-date-picker更改样式不生效问题
  • 爬虫借助代理会让网速快点吗?
  • 探索智能文字识别:技术、应用与发展前景
  • STL——list用法
  • Linux的基础指令
  • 深入浅出Pytorch函数——torch.nn.init.normal_
  • Vue.js知识点学习的一点笔记
  • Sui第四轮资助:16个团队瓜分
  • ATC模型转换环境问题案例
  • dart其他语法
  • C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once
  • FANUC机器人加减速倍率指令ACC的使用方法说明
  • 奥威BI数据可视化工具:360度呈现数据,告别枯燥表格
  • C# Linq源码分析之Take (三)
  • Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)
  • 学习内容--
  • Stable Diffusion:使用自己的数据集微调训练LoRA模型
  • 软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一
  • 06 mysql all查询 和 主键查询 和 非索引列查询
  • 黑马点评-项目集成git及redis实现短信验证码登录
  • mac苹果电脑怎么运行Windows软件?怎么安装Win虚拟机?
  • Jmeter对websocket进行测试
  • 从2023年世界机器人大会发现机器人新趋势
  • Kafka单节点部署