加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 从另一个Nan :: ObjectWrap返回Nan :: ObjectWrap

发布时间:2020-12-16 07:17:13 所属栏目:百科 来源:网络整理
导读:我有两个子类Nan :: ObjectWrap class Zyre: public Nan::ObjectWrap {...}class ZyreEvent: public Nan::ObjectWrap {...} 如何从Zyre中的方法返回ZyreEvent javascript对象? 我有以下方法,其中我创建了一个ZyreEvent: NAN_METHOD (Zyre::_recv) { Zyre *
我有两个子类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是受保护的成员.

解决方法

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

注意:我没有经验,所以这可能有错或错.我把我的信息源放在括号中,我猜测它是如何完成的.

>在接收自身指针的第一个类中创建静态NewInstance方法(NewInstance)
>使用v8 :: External来包装第一个类’C对象,并将其作为参数传递给New,其中argc和argv传递给第一个类’构造函数(using v8::External)(v8::External doc)
>编辑第一类’新方法并处理info.Length()== 1&& info [0] – > IsExternal()案例,在这种情况下基本上是复制构造函数(copying passed pointer)>在第二个类中使用… :: NewInstance()来设置返回值

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读