OpenHarmony开发者论坛
标题:
libusb库加载Native工程,怎么将libusb.h的接口给arkTS调用?
[打印本页]
作者:
a305566
时间:
2024-4-18 15:48
标题:
libusb库加载Native工程,怎么将libusb.h的接口给arkTS调用?
[md]![1713426054652.png](
https://forums-obs.openharmony.c ... 9vnd30ol4gchpdn.png
"1713426054652.png")
如图所示,libusb库已经加载到Native工程并构建成功,Native工程中add接口,通过 index.d.ts 文件暴露给了arkTS调用,那libusb.h里面的接口,需要怎么处理,才能在arkTS里面调用?
index.d.ts 文件
```
export const add: (a: number, b: number) => number;
```
index.ets 文件里面调用add示例
```
.onClick(() => {
hilog.info(0x0000, 'testTag', 'Test NAPI 100 + 68 = %{public}d', testNapi.add(100, 68));
})
```
[/md]
作者:
深开鸿_王石
时间:
2024-4-22 09:30
这个需要写个napi接口,通过这个接口暴露给arkts层,样例可以参考
https://forums.openharmony.cn/fo ... tid=2218&extra=
;知识内容可以参考:
https://docs.openharmony.cn/page ... use-napi-process.md
;
作者:
a305566
时间:
2024-4-22 16:25
回复
深开鸿_王石
: 每一个需要暴露的接口,都需要做下面的add函数类似的转换吗?
static napi_value Add(napi_env env, napi_callback_info info)
{
size_t requireArgc = 2;
size_t argc = 2;
napi_value args[2] = {nullptr};
napi_get_cb_info(env, info, &argc, args , nullptr, nullptr);
napi_valuetype valuetype0;
napi_typeof(env, args[0], &valuetype0);
napi_valuetype valuetype1;
napi_typeof(env, args[1], &valuetype1);
double value0;
napi_get_value_double(env, args[0], &value0);
double value1;
napi_get_value_double(env, args[1], &value1);
napi_value sum;
napi_create_double(env, value0 + value1, &sum);
return sum;
}
复制代码
作者:
深开鸿_王石
时间:
2024-4-22 16:43
回复
a305566
: 是的,所有js和c之间的接口都需要export接口以及定义dts内容
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5