Использование указателя для класса с v8 FunctionTemplate дает ошибку

Моя модель выглядит следующим образом

using namespace v8;
using namespace node;
class A {
private:
//something
public:
//something
}
class X {
private:
A* a;
public:
X() {
a = new A();
}
Handle<Value> myfunc(const Arguments& args) {
//I want to access the instance's "a"//like instance->a;
}
};
Handle<Value> Init(Handle<Object> target) {
NODE_SET_METHOD(target,'myfunc',Z);
}
Handle<Value> Z(const Arguments& args) {
X* b = new X();
Local<FunctionTemplate> tpl = FunctionTemplate::New(b->myfunc);
//some more code
}

дает мне следующую ошибку

error: no matching function for call to ‘v8::FunctionTemplate::New(<unresolved overloaded function type>)’

Чего я пытаюсь добиться:

var mymodel=require('build/Release/func.node');
//1. Get a new object
a = mymodel.create();
b = mymodel.create();

//2. This object has some properties that are generated in C++.
// result of (new X() in C++);
a.message // "Hello"//3. This object has some methods that can use the data stored in C++ instances
a.setMessage("hi") //sets message hi in C++ instance
a.getMessage() // "hi" // retrieves from the C++ Object.
b.getMessage() // "bazinga" //retrieved from the C++ object

Короче:

Попытка связать объект JavaScript с объектом класса C ++.

0

Решение

Вы не можете перейти к FunctionTemplate::New указатель на функцию-член. Вам нужна статическая функция или функция, не являющаяся членом.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]