Моя модель выглядит следующим образом
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 ++.
Вы не можете перейти к FunctionTemplate::New
указатель на функцию-член. Вам нужна статическая функция или функция, не являющаяся членом.
Других решений пока нет …