C 语言有没有办法通过在 lib 下放置动态库文件来实现程序功能启用?

2020-11-06 17:45:07 +08:00
 ReputationZh
比如说,在 lib 下放置 encryption.so ,程序对文件加密。如果没有这个文件,则直接跳过这部分。
2322 次点击
所在节点    Linux
5 条回复
lcdtyph
2020-11-06 17:51:51 +08:00
dlopen
ysc3839
2020-11-07 01:04:30 +08:00
那不就是个插件系统?
maxwel1
2020-11-07 22:13:42 +08:00
1 楼的方法可以的。代码里去判断有没有这个库,有就打开它然后根据符号找到函数,没有就跳过去。。
jim9606
2020-11-08 01:00:30 +08:00
具体点讲吧。
1. dlopen 加载动态库
2. dlsym 将库函数绑定至函数指针
3. 通过函数指针调用库
4. dlclose 关闭动态库
ReputationZh
2020-11-09 14:54:16 +08:00
@lcdtyph 我去试一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722487

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX