在Harmony应用开发中,开发者可以使用dlopen的方式对so库进行动态加载。
1.SO库侧
- 1.将so库鸿蒙化,编译方案可以参考lycium/doc/ohos_use_sdk/OHOS_SDK-Usage.md · OpenHarmony-SIG/tpc_c_cplusplus - Gitee.com
- 2.动态加载的方法,需要导出处理,如下:
- EXTERN_C_START
- static napi_value Init(napi_env env, napi_value exports)
- {
- napi_property_descriptor desc[] = {
- { "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr }
- };
- napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
- return exports;
- }
-
- // 导出Add的包装函数
- napi_value AddWrapper(napi_env env, napi_callback_info info) { return Add(env, info); }
-
- // 导出sumTest的包装函数
- int sumTestWrapper(int a, int b) {
- return sumTest(a, b);
- }
-
- EXTERN_C_END
<cpp运行