- win7x64, vs2013RTM, node.js-v0.12, gyp
- 问题: node官网上的例子可以跑,但看很多写成如下这样:
//官网上的例子
void Method(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = Isolate::GetCurrent();
HandleScope scope(isolate);
args.GetReturnValue().Set(String::NewFromUtf8(/isolate, "world");
}
但是看到很多这样写的,这也是官网给出的git链接上的代码
//node官网给出的git链接中的qt的源码
Handle<Value> QPointFWrap::NewInstance(QPointF q) {
HandleScope scope;
Local<Object> instance = constructor->NewInstance(0, NULL);
QPointFWrap* w = node::ObjectWrap::Unwrap<QPointFWrap>(instance);
w->SetWrapped(q);
return scope.Close(instance);
}
但是我自己写的时候,用Arguments就会报错。
在v8.h中,class Arguments是在namespace internal中
像这样:
namespace v8{
//...
namespace internal{
class Arguments;
}
//...
}
还有,HandleScope scope; 这样写也不行。
v8.h中HandleScope里面没有默认构造函数,只能HandleScope scope(isolate);这样,也没有scope.Close(...)。
但是为什么qt的源码就能想上面给出的那样写呢?