visualmemory
visualmemory
2015-03-25 02:25

windows C++开发node.js addon问题?

  • 扩展
  • node.js
  • c++
  1. win7x64, vs2013RTM, node.js-v0.12, gyp
  2. 问题: 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的源码就能想上面给出的那样写呢?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答