我正在研究电子内部的c ++本机模块,该模块以前使用v8方法来注册方法。我一直在将此代码转换为使用N-API调用。这是此模块中的代码片段:
static napi_value initialise(napi_env env, napi_value exports)
{
napi_status rcd;
napi_value fn;
try
{
rcd = napi_create_function(env, 0, 0, do_about, 0, &fn);
if(rcd != napi_ok)
throw std::invalid_argument("unable to create about");
rcd = napi_set_named_property(env, exports, "about", fn);
if(rcd != napi_ok)
throw std::invalid_argument("unable to register about");
}
catch(std::exception &e)
{ napi_throw_error(env, 0, e.what()); }
return exports;
} // initialise
NAPI_MODULE(NODE_GYP_MODULE_NAME, initialise)
当我尝试在电子主进程中加载它时,在NAPI_MODULE宏的扩展中遇到访问冲突。我试图通过在我的本机模块的require语句之前将Visual Studio附加到三个电子过程来调试此问题。我已验证未调用initialize()函数,但是存在访问冲突。
这是别人遇到的吗?