C++ 如何获取操作 Arkts 实例

C++ 如何获取操作 Arkts 实例

HarmonyOS
2024-05-30 22:32:09
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
LenZhong

在viewmodel里创建了类,然后export到js里传递给c进行调用

export class DataModel { 
 
    add(a:number , b:number): number { 
        return a+b; 
    } 
    sub(a:number , b:number): number { 
        return a-b; 
    } 
    mul(a:number,b:number):number{ 
        return a*b; 
    } 
    div(a:number,b:number):number{ 
        return a/b; 
    } 
} 
export default new DataModel();
Row() { 
  Button('+ ') 
    .fontSize(50) 
    .fontWeight(FontWeight.Bold) 
    .onClick(() => { 
      this.num3 = Testcal(this.num1, this.num2, DataModel, 1) 
      console.log("testTag", Testcal(this.num1, this.num2, DataModel, 1)) 
    }) 
    .margin(20) 
}
napi_value DataModel; 
napi_create_object(env, &DataModel); 
napi_coerce_to_object(env, args[2], &DataModel); 
 
int value2; 
napi_get_value_int32(env, args[3], &value2); 
 
//获取l类中的方法 
napi_value add, sub,mul,div; 
napi_get_named_property(env, DataModel, "add", &add); // 获取方法1 
napi_get_named_property(env, DataModel, "sub", &sub); // 获取方法2 
napi_get_named_property(env, DataModel, "mul", &mul); // 获取方法2 
napi_get_named_property(env, DataModel, "div", &div); // 获取方法2 
switch (value2) { 
  case 1:{ 
    napi_call_function(env, nullptr, add, 2, arr, &result);break; 
  } 
  case 2: { 
    napi_call_function(env, nullptr, sub, 2, arr, &result);break; 
  } 
  case 3: { 
    napi_call_function(env, nullptr, mul, 2, arr, &result);break; 
  } 
  case 4: { 
    napi_call_function(env, nullptr, div, 2, arr, &result);break; 
  } 
}
分享
微博
QQ
微信
回复
2024-05-31 21:47:13
相关问题
如何C/C++ 创建ArkTS的对象
705浏览 • 1回复 待解决
如何实现ArkTSC/C++的HashMap转换?
350浏览 • 0回复 待解决
ArkTS对象绑定的C++对象如何回收?
343浏览 • 1回复 待解决
如何C++层面获取系统时间?
2721浏览 • 2回复 待解决
C++调用ArkTS 定义的方法
471浏览 • 1回复 待解决
ArkTSC++互相直接调用
448浏览 • 1回复 待解决
ArkTSC++之间的交互
379浏览 • 1回复 待解决
如何修改C++版本?C++支持情况?
305浏览 • 1回复 待解决
C++同步调ArkTS里面的方法
357浏览 • 1回复 待解决
ArkTS调用C++类中的成员函数
463浏览 • 1回复 待解决
ts给c++传递数组,c++如何解析
465浏览 • 1回复 待解决