欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > ArkTS与C++数据类型转换

ArkTS与C++数据类型转换

2025/2/4 20:32:39 来源:https://blog.csdn.net/u013270171/article/details/145428367  浏览:    关键词:ArkTS与C++数据类型转换

背景

做过Android JNI开发的小伙伴对Java和C++的互相调用有所了解,JNI提供了Java和C++的类型转换,与JNI不同的是NAPI中,TS调用C++的参数都封装到了一起:

static napi_value add(napi_env env, napi_callback_info info)  
{
}

不管要传递多少个参数,都封装在napi_callback_info中,可以从napi_callback_info中获取全部参数信息:

size_t argc = 7;//参数个数
napi_value args[7] = {nullptr};
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);

接下来就可以从args中分别读取ArkTS传来的参数信息,下面介绍如何进行类型转换。

ArkTS转C++类型

TS基本数据类型:

  • 数字类型 number
  • 字符串类型 string
  • 布尔类型 boolean
  • 任意精度整形 bigint
  • 对象类型 object

C++基本数据类型:

  • 整形 int、short、long、long long
  • 浮点型 float、double、long double
  • 字符型 char
  • 布尔型 bool

基本数据类型转换

NAPI提供了上面两种语言对应的类型的转换:

  • 转换为布尔类型:napi_get_value_bool
  • 转换为int32:napi_get_value_int32
  • 转换为int64:napi_get_value_int64
  • 转换为无符号32位:napi_get_value_uint32
  • 转换为double:napi_get_value_double
  • bitint 64位:napi_get_value_bigint_int64
  • bitint 无符号64位:napi_get_value_bigint_uint64

除了bool类型,其他基本类型就是数值类型,TS中的数值类型对应C++各种细分类型࿰

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com