gpt4 book ai didi

c++ - 从另一个 Nan::ObjectWrap 返回一个 Nan::ObjectWrap

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:15:41 27 4
gpt4 key购买 nike

我有两个 Nan::ObjectWrap 的子类

class Zyre: public Nan::ObjectWrap {...}

class ZyreEvent: public Nan::ObjectWrap {...}

如何从 Zyre 中的方法返回 ZyreEvent javascript 对象?

我有以下方法,我在其中创建了一个 ZyreEvent:

NAN_METHOD (Zyre::_recv) {
Zyre *node = Nan::ObjectWrap::Unwrap <Zyre> (info.Holder ());
ZyreEvent *zyre_event = new ZyreEvent (node->self);
info.GetReturnValue().Set(zyre_event->Wrap(info.This()));
}

但我无法包装 zyre_event,因为 Wrap 是 protected 成员。

最佳答案

如果我理解正确,您想从 Nan::ObjectWrap(的子类)的另一个(子类)Nan::ObjectWrap 的方法实例返回。

注意:我没有经验,所以这可能有错误或错误。我已将我的来源放在括号中,其中是我猜是如何完成的示例。

  1. 在接收自身指针 (NewInstance) 的第一个类中创建 static NewInstance 方法
  2. 使用 v8::External 包装第一类的 C++ 对象,并将其作为参数传递给 Newargc argv 到一流的构造函数 ( using v8::External ) ( v8::External doc )
  3. 编辑第一类'New 方法并处理 info.Length() == 1 && info[0]->IsExternal() 情况,这基本上是复制构造函数这种情况 ( copying passed pointer )
  4. 在第二类中使用...::NewInstance()设置返回值

关于c++ - 从另一个 Nan::ObjectWrap 返回一个 Nan::ObjectWrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com