【问题标题】:V8 Callback, with Number instead of StringV8 回调,使用数字而不是字符串
【发布时间】:2015-07-20 06:28:37
【问题描述】:

将参数从 Node.js 传递给 C++ 函数,并通过回调函数将结果返回给 Node.js。

Node.js Addons Callback example 之后,该示例已被修改为涉及数字而不是字符串。

这是来自 Node.js 插件的示例代码集:

Local<Function> cb = Local<Function>::Cast(args[0]);
const unsigned argc = 1;
Local<Value> argv[argc] = { String::NewFromUtf8(isolate, "hello world") };
cb->Call(isolate->GetCurrentContext()->Global(), argc, argv);

这是修改后的代码集,其中 value 是数组中某个位置的数字:

Local<Function> cb = Local<Function>::Cast(args[1]);
const unsigned argc = 2;
Local<Value> argv[argc] = {Number::New(isolate, value)};
cb->Call(isolate->GetCurrentContext()->Global(), argc, argv);

【问题讨论】:

  • 段错误发生在哪里?

标签: c++ node.js pointers v8 node.js-addon


【解决方案1】:

您的问题是您为参数定义了一个大小为 2 的数组,您调用了将 arg count 传递为 2 的回调函数,但是您将数组初始化为单个值。要么更改argc = 1,要么初始化argv数组中的2个值。

【讨论】:

    猜你喜欢
    • 2018-02-28
    • 2013-06-15
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多