utf8Value错误C2661:没有重载函数接受2个参数

我用本机代码创建了一个节点模块。我使用v8::String::Utf8Value::Utf8Value,在documentation中,它需要两个参数。

所以我用

Isolate * isolate = info.GetIsolate();
Local<Context> context = isolate->getcurrentContext();
Local<Array> array = Local<Array>::Cast(info[0]);
MaybeLocal<Value> maybeIndex = array->Get(context,0);
Local<Value> index = maybeIndex.ToLocalChecked();

// This is the important line
String::Utf8Value path(isolate,index);

开发模块时,没问题,npm install也可以构建它,也可以Travis。

但是当我想在应用程序(电子)中使用此模块时,当我运行.\node_modules\.bin\electron-rebuild.cmd来构建模块时,它会失败并为error C2661: No overloaded function takes 2 arguments显示v8::String::Utf8Value::Utf8Value

我不知道我想念什么,所以如果有人知道我发生了什么事,那真是太好了。

您可以在Github上查看代码,尤其是最后一次提交here

信息:  -该模块仅Windows  -我使用了Node 12,并尝试将其升级到13  -构建模块时,node-gyp版本为5.0.5,通过electron-rebuild

构建时,版本为6.0.1。
sanxiah1236 回答:utf8Value错误C2661:没有重载函数接受2个参数

您要构建的Electron版本是什么?古代V8版本没有Utf8Value的两个参数版本,但是自6.2分支(2017年夏季)以来,它就已经存在。因此,如果您的基于Electron的应用程序很旧,则可以对其进行解释,并对其进行更新就可以修复它。

本文链接:https://www.f2er.com/2863791.html

大家都在问