1

V8エンジンのラッパークラスを書いているので、最終的にはこのようなことができるようになります

script->createClass("Test");
script->getClass("Test")->addFunction("funct1",testfunct1);
script->getClass("Test")->addVariable("x",setter,getter);

これまでのところ、クラスを作成して関数を追加することができ、完全に機能しますが、変数の追加で問題が発生しました。

私のクラステンプレートはそのように保存されています

Persistent<Object> classInstance;

そして、次のようにアクセサーを追加しようとします:

this->classInstance->SetAccessor(String::New(variableName),setter,getter);

このコードをコンパイルすると、v8::Object に SetAccessor 関数がないというエラーが表示されます (ただし、doxygen のドキュメントには別の記述があります)。

私の質問は次のとおりです。どうすればこれを修正できますか? オブジェクトを ObjectTemplate にキャストすることは可能ですか?

4

1 に答える 1

4

SetAccessoronObjectは、2010年5月にリリースされたV8 2.2.12の時点で利用可能です。(それ以前は、実際にはでのみ利用可能でしたObjectTemplate。)おそらくV8のコピーを更新する必要があります。

于 2010-11-27T20:14:18.200 に答える