当前位置:网站首页 > Haskell函数式编程 > 正文

动态库的两种调用方式是什么(动态库中的函数怎么调用)



顾名思义,在运行时动态的加载动态库,就是我们有若干个动态库,但是程序启动的时候这些动态库并不会被直接加载到内存中,而是在程序运行的过程中根据实际需要,选择合适的动态库加载到内存中。

运行时动态的加载动态库是一种很常见也很有用的技术,主要用在

  • 插件
  • 模块化程序
  • 热更新

boost库中有一个叫做dll的库,我们可以使用这个库实现在程序运行时动态加载动态库,Linux和Windows系统本身也有一些系统调用可以使用,但是使用boost的dll库可以跨平台,我们来看几个具体demo,环境是VS2022,建议实际测试一下,这样理解的会比较深刻。

先看一下项目结构
在这里插入图片描述

其中demo项目是可执行程序,dll_demo项目是动态库,这个示例是参考了boost官方文档给的用法,也补充了一些内容,想要说明的内容都写在注释里了。

直接看代码

 
 
 

这个示例和示例一的结构一样,具体参考示例一就可以,这个示例也参考了boost官方文档给的用法,也补充了一些内容,想要说明的内容都写在注释里了,另外需要注意这个示例在执行时会崩溃,注释中也写了。

直接看代码

 
 
 

这个示例和示例一的结构一样,具体参考示例一就可以,这个示例是一种比较常规的用法,想要说明的内容都写在注释里了。

直接看代码

 
 
 

注意使用boost的dll库加载动态库时,不管是什么原因导致的动态库卸载之后(比如各种持有动态库的实例发生变化,以及各种原因),使用从卸载的动态库里导出的任何符号,都会导致程序崩溃。

到此这篇动态库的两种调用方式是什么(动态库中的函数怎么调用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 指数与对数函数图像(指数与对数函数图像的关系)2024-12-05 17:00:06
  • 支付方式怎么填打在银行卡上(支付方式银行卡是什么意思)2024-12-05 17:00:06
  • modbus RTU报文格式详解(modbus报文解读)2024-12-05 17:00:06
  • 报文格式错误什么意思(报文格式错误 (5100030))2024-12-05 17:00:06
  • 手机软件后缀名是什么格式(各种手机平台的软件后缀名介绍)2024-12-05 17:00:06
  • ifstream eof函数(ifstream ifs)2024-12-05 17:00:06
  • 支付方式怎么改指纹支付(怎么改支付指纹?)2024-12-05 17:00:06
  • 多级列表功能自动编号(如何利用多级列表自动编号利用多级列表和标题样式功能实现章节的自动编号)2024-12-05 17:00:06
  • 报文格式有哪些(什么是报文?报文有哪些作用?)2024-12-05 17:00:06
  • lda主题模型困惑度(lda主题模型困惑度公式)2024-12-05 17:00:06
  • 全屏图片