dlsym 动态调用动态链接库
dlsym
- 样例
- hello.c
- hello_test.c
- 执行.a
样例
hello.c
#include <stdio.h>
int xx = 996;void test()
{printf("test called\n");
}
编译so gcc hello.c -fPIC -shared -o libhello.so
hello_test.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>int main(int argc, char **argv)
{void *handle = dlopen("./libhello.so", RTLD_LAZY); if(!handle) {printf("open failed: %s\n", dlerror());return 1;} void *xx = dlsym(handle, "xx"); //libtest.so 中定义的xxif(xx) {printf("xx is %d\n", *(int*)xx);} else {printf("load failed: %s\n", dlerror()); }void *test = dlsym(handle, "test"); //libtest.so 中定义的xxif(test) {void (*f_test)() = (void (*)())test;f_test();return 1;} else {printf("load failed: %s\n", dlerror()); }dlclose(handle);return 0;
}
编译.a gcc hello_test.c -ldl -o hello_test.a
执行.a
xx is 666
test called
dlsym 动态调用动态链接库相关推荐
- dlopen 和 dlsym 动态调用函数
dlopen 和 dlsym 动态调用函数 iOS/MacOSX/移动安全 exchen 2年前 (2018-08-20) 2997浏览 0评论 Linux/unix 提供了使用 dlopen ...
- linux dlopen函数,dlopen 和 dlsym 动态调用函数
Linux/unix 提供了使用 dlopen 和 dlsym 方法动态加载库和调用函数,这套方法在 macOS 和 iOS 上也支持. dlopen 打开一个库,获取句柄. dlsym 在打开的库中 ...
- 嵌入式Linux支持dlopen,Android下使用dlopen函数动态调用.so链接库
在这篇文章([09.03.25]Linux环境中dlopen函数的简单应用)中.实现了在UBUNTU LINUX环境下使用dlopen函数动态调用.so链接库.但是也提到了在Android下未能成功. ...
- C#程序实现动态调用DLL的研究(转)
摘 要:在<csdn开发高手>2004年第03期中的<化功大法--将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- 通过反射动态调用webservices
该方法可以使程序不通过web引用的方式去调用webservices方法,直接在代码里调用该方法就能达到动态调用webservices的目的.使用前先引用System.Web.Services动态链接库 ...
- VC++6.0如何创建与调用动态链接库(dll)
VC++支持的DLL: DLL的编制与具体的编程语言及编译器无关,动态链接库随处可见,VC++支持三种DLL:非MFC动态库.MFC规则DLL和MFC扩展DLL.DLL导出函数(或变量.类)可供应用程 ...
- JAVA调用动态链接库
上一篇<JAVA本地接口(JNI)>中介绍了JAVA的JNI技术,通过JAVA自有的方式调用动态链接库,这一篇将继续为大家介绍使用其他方式调用动态链接库. 首先,我们编写一个用于测试的链接 ...
- 动态调用动态库方法 .so
2019独角兽企业重金招聘Python工程师标准>>> 关于动态调用动态库方法说明 一. 动态库概述 1. 动态库的概念 日常编程中,常有一些函数不需要进行编译或者可以 ...
- Unity调用动态链接库dll和so
[001]Unity调用动态链接库dll和so ApolloAR https://www.jianshu.com/p/f37bb72979a1 一.PC平台 (注:环境 VS2017+Unity20 ...
最新文章
- 一些js代码,自己备用的。高手不要笑话我。。(跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统)...
- glup Browsersync
- mysql 控制台操作命令
- 2.2 Wrappers访问控制
- HTTP CORS(HTTP-同源策略)
- java rx_史上最浅显易懂的RxJava入门教程
- Tomcat 6、7在EL表达式解析时存在的一个Bug
- 23种设计模式(四)组件协作之观察者模式
- php常量的声明和使用
- 工大瑞普虚拟思科实验室full(U7.3)环境配置方法
- 互亿无线python接口
- 教你如何用通道来快速抠图的方法
- dnf怎么显示连接服务器失败怎么回事,登录DNF显示连接不到服务器怎么办 服务器连接失败解决方法...
- 分布式 | dble元数据更新同步
- 外贸出口业务管理解决方案丨汇信
- 马哥教育N38第二周作业
- 编辑PDF文件时如何提取页面
- 第九章——规范数据库设计
- 华为防火墙设置安全策略,封禁高危异常ip
- Spring Security详细讲解(JWT+SpringSecurity登入案例)
热门文章
- 嗖嗖嗖主题网wordpress外贸企业主题制作教程--第一讲 本地环境的搭建和wordpress安装
- 酒至数杯 卡巴斯基杀毒软件
- Win7系统出现提示: “Windows已遇到关键问题,将在一分钟后自动重新启动。”...
- 百度无人驾驶车北京上路!网友:没有司机我有点慌
- 静态手势识别总体方案
- Electron桌面悬浮球工具,支持拖动及配置,提供了待办事项、快速笔记等功能。
- FAT32文件系统转NTFS文件系统
- 昨夜无眠 转自科学网程代展博文] (2012-11-13 21:09:13)
- 色字头上一把刀【不顶勿进】
- rsync+inotify高效实时同步