相关问题
ArkTS侧与Native侧分别如何动态加载SO库
701浏览 • 1回复 待解决
如何在native层获取屏幕亮度
515浏览 • 1回复 待解决
ArkTS和Native如何动态加载、卸载so
682浏览 • 1回复 待解决
在Native侧如何集成三方SO库
860浏览 • 1回复 待解决
Native工程中如何使用其他三方so库
801浏览 • 1回复 待解决
项目c++代码依赖多种so库,如何在编译打包的时候在hap包中仅编译指定的so库
556浏览 • 1回复 待解决
如何在Native侧释放ArkTS对象
776浏览 • 1回复 待解决
如何在Native侧集成三方库Curl,并进行HTTP数据请求
660浏览 • 1回复 待解决
如何通过ErrorManager捕获native层的崩溃信息
468浏览 • 1回复 待解决
Native so 编译 opencv,报找不到 libunwind.so
220浏览 • 1回复 待解决
DevEco Studio开发如何引入.so库
8953浏览 • 1回复 待解决
sdk 10升级sdk 11后,加载链接的so库崩溃
530浏览 • 1回复 待解决
ArkTS项目如何调用已有SO库?
307浏览 • 1回复 待解决
native项目中,在CMakeLists.txt中加入三方so库接口后调用native方法失败
706浏览 • 1回复 待解决
如何在Native侧获取APP版本信息
772浏览 • 1回复 待解决
native如何通过命令行编译成so?
1203浏览 • 1回复 待解决
如何使用后缀为so.x.y类型的so库,例如libxxx.so.3.1、libxxx.so.3.1.0
629浏览 • 1回复 待解决
native层如何访问rawfile的二进制文件
697浏览 • 1回复 待解决
native回调到ts层的object,ts层获取其成员变量
249浏览 • 1回复 待解决
图片pixelMap传到native层,进行旋转、缩放
312浏览 • 0回复 待解决
如何在DOM树加载前后运行JS脚本
565浏览 • 1回复 待解决
如何在Native侧构建一个ArkTS对象
659浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
438浏览 • 1回复 待解决
在Native侧进行跨模块加载
192浏览 • 1回复 待解决
Native库文件所在路径
722浏览 • 1回复 待解决
在Native层的C/C++代码环境,so库动态加载是使用dlopen()、dlsym()和dlclose()这三个函数实现的。它们的作用分别是:
一般使用C/C++实现so库动态加载,流程如下:
首先调用dlopen()函数,这个函数所需的参数,一个是so库的路径,一个是加载模式。一般使用的加载模式有两个:
显然对于动态加载,加载方只需知道当前被加载的so库里面自己需要用的函数和变量定义,所以这里选择的是后者。如果这个调用成功将返回一个so库的句柄;
在上一步得到so库句柄之后,这时就可以调用dlsym()函数,传入so库句柄和所需的函数或变量名称,返回相应的函数指针或变量指针;加载方这时就可以使用返回的指针调用被加载so库之中定义的函数和数据结构;
当so库的调用结束,调用dlclose()函数关闭卸载so库;
如果在打开关闭so库,或者获取so库里操作对象的指针出现错误的时候,可以调用dlerror()函数获取具体的错误原因。
Native侧代码实现