我正在使用一个节点模块,并希望在 C++ 的 ObjectWrap 的子类上调用它的一些方法。我并不完全清楚如何在函数定义中正确构造 Arguments 对象。
例如,我想调用以下方法(Context2d extends ObjectWrap):
Handle<Value>
Context2d::LineTo(const Arguments &args) {
HandleScope scope;
if (!args[0]->IsNumber())
return ThrowException(Exception::TypeError(String::New("lineTo() x must be a number")));
if (!args[1]->IsNumber())
return ThrowException(Exception::TypeError(String::New("lineTo() y must be a number")));
Context2d *context = ObjectWrap::Unwrap<Context2d>(args.This());
cairo_line_to(context->context(), args[0]->NumberValue(), args[1]->NumberValue());
return Undefined();
}
所以,简而言之:有一个展开的 Context2D,我如何调用静态 LineTo 以便从 args.This 调用返回相同的实例?我当然意识到我可以通过深入研究 v8 来解决这个问题,但我希望了解该主题的人可以为我指明正确的方向。