NAPI SAMPLE
发布于 7 年前 作者 malpower 4550 次浏览 来自 分享

话不多说,先贴代码:

#include <node_api.h> #include <iostream>

napi_value sayHello(napi_env env,napi_callback_info ci) { size_t lengthOfArguments=1; napi_value args,thisPointer; void *data; napi_get_cb_info(env,ci,&lengthOfArguments,&args,&thisPointer,&data); if (lengthOfArguments!=1) { return args; } size_t strlen; napi_get_value_string_utf8(env,args,NULL,0,&strlen); char *buf=new char[strlen+1]; size_t res; napi_get_value_string_utf8(env,args,buf,strlen+1,&res); std::cout<<buf<<std::endl; delete[] buf; return args; }

void init(napi_env env,napi_value exports,napi_value module,void *priv) { napi_status status; napi_value value; status=napi_create_number(env,111,&value); if (status!=napi_ok) return; napi_set_named_property(env,exports,“jjj”,value); napi_value fn; napi_create_function(env, NULL, sayHello, NULL, &fn); napi_set_named_property(env,exports,“sayHello”,fn); }

NAPI_MODULE(hh,init)

以上是我用NAPI在8.0.0下写的sample。根据官方文档,时至现在,我在官方文档中发现的有两处错误。 一处是napi_get_valu_string_length()这个,已经被移除了,不能用了。。。。 另一个是napi_create_function第三个参数是函数指针,但是要求该函数是返回napi_value的,而不是文档上写的void。

Hope this will help you to start on N-API.

2 回复

去提pr啊

在node的repo上边看到了他们的commit里面有说removed和返回值修改。

回到顶部