swig的导出node接口回调实现方法

原创
2020/12/14 15:02
阅读数 210

笔者使用的是swig4.0.2, node版本是v10.23.0 。(注:目前这个版本的swig 是不支持v12版本以上)

void gcd(std::function<void()>);
%{
    #include "test.h"
%}

%typemap(in) std::function<void()> {
    v8::Isolate* isolate = args.GetIsolate();
    v8::Local<v8::Context> context = isolate->GetCurrentContext();
    v8::Local<v8::Function> cb = v8::Local<v8::Function>::Cast(args\[0\]);
    $1 = \[&\] {
        cb->Call(context, Null(isolate), 0, nullptr).ToLocalChecked();
    }
}
%include "test.h"

javascript代码里的实现

test.gcd(function () {
    console.log("run gcb..........")
});
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部