HarmonyOS 鸿蒙Next 对“如何导出C++自定义类,导出后如何在ArkTS侧进行类方法调用”FAQ的疑问

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 对“如何导出C++自定义类,导出后如何在ArkTS侧进行类方法调用”FAQ的疑问

博客链接:如何导出C++自定义类,导出后如何在ArkTS侧进行类方法调用,这里面

// MyDemo.h 定义C++ 类 

class MyDemo { 

  public: 

    MyDemo(std::string m_name); 

    MyDemo(); 

    ~MyDemo();   

    std::string name; 

    int add(int a, int b); 

    int sub(int a, int b); 

};

类成员函数add,sub是在哪里实现的呢?还有定义的Add 和Sub函数是类成员函数吗,也没有类声明符::吗,大家知道这个怎么理解吗

2 回复
不是,我是想问ArkTS与c++的交互,在c++端怎么实现类定义和相互调用呢

针对HarmonyOS 鸿蒙Next中“如何导出C++自定义类,导出后如何在ArkTS侧进行类方法调用”的疑问,以下提供专业解答:

首先,在C++中定义类,并创建导出函数作为类的包装器,这些导出函数将充当C++和ArkTS之间的桥梁。然后,编译C++代码为动态链接库(如.so),并确保导出的函数是可见的。

在ArkTS侧,使用NAPI接口定义与C++对应的类和方法,并通过napi_define_classes等函数建立ArkTS类与C++侧的映射关系,将对应的对象挂载到export上导出。在index.d.ts文件中定义对应的ArkTS侧类接口,以便在ArkTS中直接调用。

调用时,ArkTS通过NAPI接口传递参数并调用C++类的方法,处理返回值时也需要进行相应的类型转换。

请注意,以上步骤涉及复杂的编程和技术细节,实际操作中可能因开发环境、编译器等因素而有所不同。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部