在C++代码中,当需要操作绑定的C++对象时(如MyObject::GetValue、MyObject::SetValue、MyObject::PlusOne等函数中),首先获取ArkTS对象(jsThis),然后调用napi_unwrap接口,传入环境(env)和ArkTS对象(jsThis),并通过reinterpret_cast将取出的C++对象指针赋值给相应的变量(如MyObject* obj),最后就可以对取出的C++对象进行操作(如获取值、设置值、执行plusOne操作等)。示例代码如下:napi_value MyObject::GetValue(napi_env env, napi_callback_info info) { napi_value jsThis; napi_get_cb_info(env, info, nullptr, nullptr, &jsThis, nullptr); MyObject* obj; napi_unwrap(env, jsThis, reinterpret_cast<void**>(&obj)); napi_value num; napi_create_double(env, obj->value_, &num); return num; }本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
在C++代码中,当需要操作绑定的C++对象时(如
MyObject::GetValue
、MyObject::SetValue
、MyObject::PlusOne
等函数中),首先获取ArkTS对象(jsThis
),然后调用napi_unwrap
接口,传入环境(env
)和ArkTS对象(jsThis
),并通过reinterpret_cast
将取出的C++对象指针赋值给相应的变量(如MyObject* obj
),最后就可以对取出的C++对象进行操作(如获取值、设置值、执行plusOne
操作等)。示例代码如下:本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。