使用Boost的DLL库管理动态链接库(类似于Qt中的QLibrary)
2024-08-28 18:30:45
Boost 1.61新增了一个DLL库,跟Qt中的QLibrary类似,提供了跨平台的动态库链接库加载、调用等功能。
http://www.boost.org/users/history/version_1_61_0.html
编写一个Test.dll,导出方法Add
- INT WINAPI Add(INT x, INT y)
- {
- return x + y;
- }
加载、检查导出方法是否存在、调用方法、卸载应该是最常用的功能了。
- int main()
- {
- auto libPath = "D:\\Test.dll";
- boost::dll::shared_library lib(libPath);
- lib.has("add"); // false。符号名称是大小写敏感的
- if (lib.has("Add"))
- {
- auto& symbol = lib.get<int __stdcall(int, int)>("Add");
- std::cout << symbol(5, 10) << std::endl;
- }
- boost::dll::shared_library lib2;
- lib2.load(libPath);
- if (lib2.is_loaded())
- {
- auto& symbol = lib.get<int __stdcall(int, int)>("Add");
- std::cout << symbol(3, 5) << std::endl;
- lib2.unload();
- }
- system("pause");
- return 0;
- }
http://blog.csdn.net/aqtata/article/details/51780423
最新文章
- 动画总结(UIView的动画)
- writel(readl(&;pwm_timer->;tcfg0) | 0xff, &;pwm_timer->;tcfg0);
- UVa 458 - The Decoder
- canvas模仿微信抢红包功能
- Distinctive Image Features from Scale-Invariant
- python计算文件的行数和读取某一行内容的实现方法
- mysql 使用说明-2
- Swift - 使用HTML5进行iOS开发(将HTML5打包成iOS应用)
- 红眼技术博客 » redis连接池红眼技术博客 » redis连接池
- mybatis springmvc调用oracle存储过程,返回记录集
- 【Egret】2D 使用中的一些疑难解决技巧!
- 解决Win10系统本地主机,网络受限占用CPU过高的问题
- JVM-高效并发
- TCP 握手和挥手图解(有限状态机)
- MySQL索引操作
- linux系统编程之进程(七):system()函数使用
- 关于AutoMapper和WCF的一些认识
- 300万大奖:欢迎参加美团联合主办的全球AI挑战赛
- GoLang中flag标签使用
- redis 配置和使用(C++)
热门文章
- 手机端自适应布局demo
- 在CentOS系统上将deb包转换为rpm包
- android打包SDK具体操作(包含第三方的jar一起打包)
- 【37.68%】【hdu 5918】Sequence I
- android游戏开发系列(1)——迅雷不及掩耳的声音
- Android 开发新方向 Android Wear ——概述
- LockWindowUpdate的函数的用法
- c语言学习笔记(4)——流程控制
- code first迁移(add-migration)的时候 后面信息不能有中文 中文报错 ";不支持给定路径的格式。";
- Mybatis缓存 缓存配置文件 good