1

如何在 Node.js 的 C++ 扩展中对全局变量“X”使用 setter 和 getter?

我在 getter 和 setter 方法中得到未定义的“x”。

尝试从此链接Accessors执行程序。Static Global Variables

我已经成功编写了一个小模块,可以将两个给定的数字相加和相乘。

以下是我的代码

Init(入口点)方法包含 -

exports->SetAccessor(String::New("x"), XGet, XSet);

除此之外,我还有以下 setter 和 getter。

Handle<Value> XGet(Local<String> property, const AccessorInfo& info){
return Integer::New(x);
}

void XSet(Local<String> property, Local<Value> value, const AccessorInfo& info){
x = value->Int32Value();
}

在编译时它说 -‘x’ was not declared in this scope

4

1 回答 1

1

错误消息'x' was not declared in this scope几乎将其固定下来。您的代码和您正在查看的示例页面的标题是明确的Accessing Static Global Variables,所以我认为他们假设您已经x定义了这样一个变量,您想通过 JS 访问/改变它。

所以快速修复是int32_t x;在你的 C++ 文件中的某处添加XGetXSet.

节点文档对此有一些信息,Wrapping C++ objects如果您想使用对象的实例而不是单个全局变量,标题为标题的部分可能是您开始的好地方。

于 2013-11-07T06:33:31.600 回答