致力于创建一个将返回Object
节点环境的附加组件。基于Atul Anand 在 C++ 中对 N-API 的介绍,我将类对象的方法封装在InstanceMethod()
其中以公开它们;但该函数需要一个返回 a 的方法Napi::Value
。我无法弄清楚将 C++ 指针转换为Value
; Value::From(env, ptr)
错误(Visual C++ 2017)与“无法从'初始化列表'转换为'Napi::Value'”。
问问题
1542 次
2 回答
2
似乎即使我在这里问,其他人也在Node -API-Addon github 站点上问。最初发布给用户问题的解决方案是我需要让我的代码正常工作。
简而言之(回想起来很明显):C++ 指针在 JavaScript 中是无用的,该方法需要返回一个包装 C++ 对象的 JavaScript 对象。JS 对象在napi_ref
( Napi::Reference
) 中维护,引用Value()
是从访问方法返回的内容。
于 2019-05-20T19:47:58.087 回答
0
在跨边界对象访问期间,您必须在本机代码中使用napi_wrap和napi_unwrap。
napi_unwrap():检索以前包装在 JavaScript 对象中的本机实例
napi_wrap():将本机实例包装在 JavaScript 对象中
以下 URL 用于 n-api 文档 Object Wrap,其中包含有关它的更多详细信息。 https://nodejs.org/api/n-api.html#n_api_object_wrap
以下 github 示例具有此用法
https://github.com/nodejs/node-addon-examples/tree/master/8_passing_wrapped/napi
于 2019-05-21T19:04:22.950 回答