如何在Node.js的C ++扩展中使用setter和getter作为全局变量'X'?
我在getter和setter方法中得到了未定义的'x'。
尝试从此link执行Accessors
的{{1}}计划。
我已经成功编写了一个小模块,可以将两个给定的数字相加并相乘。
以下是我的代码
Init(入口点)方法包含 -
Static Global Variables
以上,我有以下setter和getter。
exports->SetAccessor(String::New("x"), XGet, XSet);
编译时说 - 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();
}
答案 0 :(得分:1)
错误消息'x' was not declared in this scope
几乎把它固定下来。您正在查看的代码和示例页面明确标题为Accessing Static Global Variables
,因此我认为他们假设您已经定义了这样的变量x
,您希望通过JS访问/变异。
因此,快速解决方法是在int32_t x;
和XGet
之上的C ++文件中添加XSet
。
node documentation有一些关于此的信息,如果您想要处理对象的实例而不是单个全局,那么标题为Wrapping C++ objects
的部分可能是您开始的好地方变量