visualmemory 2015-03-25 02:25 采纳率: 0%
浏览 2428

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

  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条回答

  • visualmemory 2015-03-25 03:41
    关注

    自问自答:是因为版本的问题?我看了node.js-v0.10.23的源码,里面的addon例子.cc文件是这样写的

     Handle<Value> Method(const Arguments& args) {
      HandleScope scope;
      return scope.Close(String::New("world"));
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺