OpenHarmony开发者论坛

标题: 从应用层传参给底层api时出错 [打印本页]

作者: xq_qyh    时间: 2023-10-26 10:40
标题: 从应用层传参给底层api时出错
【问题描述】
问题现象和发生的背景
这是底层napi的代码

  1. static napi_value zcwriteserial(napi_env env, napi_callback_info info) {
  2.         size_t argc=1;
  3.         napi_value args[1]={nullptr};
  4.         NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, nullptr, nullptr));
  5.         HDF_LOGE("writeinfo=%{public}s",args[0]);
  6.         char writebuff[1024]={0};
  7.         size_t* result1;
  8.         NAPI_CALL(env,napi_get_value_string_utf8(env,args[0],writebuff,1024,result1));
  9.         HDF_LOGE("writebuff=%{pubkic}s",writebuff);         
  10.         int res=writetest1(writebuff);
  11.         HDF_LOGE("write res= %{public}d",res);
  12.     napi_value result;
  13.         NAPI_CALL(env,napi_create_string_utf8(env,writebuff,512,&result));
  14. }
复制代码
这是我在应用层上的代码,我传递的明明是“123”打印出来却是别的,有大佬知道是为什么吗

(, 下载次数: 0)



我想要达到的结果


【运行环境】
硬件:rk3568
ROM版本:3.2release
DevEvoStudio版本:4.0
SDK版本:9

作者: 马迪    时间: 2023-10-26 17:43
[md]不能直接打印args[0],需要通过napi_get_value_string_utf8 把napi类型转C/C++数据类型
``
char writebuff[1024] = {0};
size_t s = 0;
napi_get_value_string_utf8(env, args[0], writebuff, 1024, &s);

```
OH_LOG_Print(LOG_APP, LOG_INFO, GLOBAL_RESMGR, TAG, "test res = %{public}s", writebuff);
```

```
可以参考
https://gitee.com/openharmony-si ... s/napi_data_type.md
```

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5