私はノード モジュールを使用しており、C++ から ObjectWrap のサブクラスでそのメソッドのいくつかを呼び出したいと考えています。関数定義で Arguments オブジェクトを正しく構築する方法は、私には完全には明らかではありません。
たとえば、次のメソッドを呼び出したいと思います (Context2d は 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 がある場合、args.This 呼び出しから同じインスタンスが返されるように静的 LineTo を呼び出すにはどうすればよいでしょうか? もちろん、v8を掘り下げることでこれを理解できることはわかっていますが、このトピックに精通している誰かが私を正しい方向に向けてくれることを望んでいました.