V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ReputationZh
V2EX  ›  Linux

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

  •  
  •   ReputationZh · 2020-11-06 17:45:07 +08:00 · 2311 次点击
    这是一个创建于 1478 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如说,在 lib 下放置 encryption.so ,程序对文件加密。如果没有这个文件,则直接跳过这部分。
    5 条回复    2020-11-09 14:54:16 +08:00
    lcdtyph
        1
    lcdtyph  
       2020-11-06 17:51:51 +08:00 via iPhone
    dlopen
    ysc3839
        2
    ysc3839  
       2020-11-07 01:04:30 +08:00
    那不就是个插件系统?
    maxwel1
        3
    maxwel1  
       2020-11-07 22:13:42 +08:00
    1 楼的方法可以的。代码里去判断有没有这个库,有就打开它然后根据符号找到函数,没有就跳过去。。
    jim9606
        4
    jim9606  
       2020-11-08 01:00:30 +08:00
    具体点讲吧。
    1. dlopen 加载动态库
    2. dlsym 将库函数绑定至函数指针
    3. 通过函数指针调用库
    4. dlclose 关闭动态库
    ReputationZh
        5
    ReputationZh  
    OP
       2020-11-09 14:54:16 +08:00 via iPhone
    @lcdtyph 我去试一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1135 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:52 · PVG 07:52 · LAX 15:52 · JFK 18:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.