libusb库加载Native工程,怎么将libusb.h的接口给arkTS调用? 精华

a305566 显示全部楼层 发表于 2024-4-18 15:48:59

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));
          })

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论3

深开鸿_王石

沙发 发表于 2024-4-22 09:30:12
这个需要写个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  IP属地: 湖南省

回复 深开鸿_王石: 每一个需要暴露的接口,都需要做下面的add函数类似的转换吗?

  1. static napi_value Add(napi_env env, napi_callback_info info)
  2. {
  3.     size_t requireArgc = 2;
  4.     size_t argc = 2;
  5.     napi_value args[2] = {nullptr};

  6.     napi_get_cb_info(env, info, &argc, args , nullptr, nullptr);

  7.     napi_valuetype valuetype0;
  8.     napi_typeof(env, args[0], &valuetype0);

  9.     napi_valuetype valuetype1;
  10.     napi_typeof(env, args[1], &valuetype1);

  11.     double value0;
  12.     napi_get_value_double(env, args[0], &value0);

  13.     double value1;
  14.     napi_get_value_double(env, args[1], &value1);

  15.     napi_value sum;
  16.     napi_create_double(env, value0 + value1, &sum);

  17.     return sum;

  18. }
复制代码

深开鸿_王石

发表于 2024-4-22 16:43  IP属地: - 中国江苏省无锡市 中国电信IDC

回复 a305566: 是的,所有js和c之间的接口都需要export接口以及定义dts内容

【2 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部