我正在尝试在 C++ 中执行回调(其中 C++ 作为 node.js 程序的一部分运行)。回调是到第 3 方库,当它有数据要传递时,它将调用回调。
我似乎遇到的问题是变量类型:
static void sensorEventCallback(const char *protocol, const char *model,
int id, int dataType, const char *value, int timestamp,
int callbackId, void *context)
{
//process the data here
}
Handle<Value> sensorEvents( const Arguments& args ) {
HandleScope scope;
...
callbackId = tdRegisterSensorEvent(
reinterpret_cast<TDSensorEvent>(&telldus_v8::sensorEventCallback),
Context::GetCurrent()->Global());
}
我得到的错误:
错误:无法将 'v8::Local<v8::Object>' 转换为 'void*' 参数 '2' 到 'int tdRegisterSensorEvent(void ( )(const char , const char*, int, int, const char*, int, int, void*), void*)'</p>
它似乎在与作为上下文的论点 2 作斗争。关于如何将 V8 对象转换为 tdRegisterSensorEvent 将接受的对象的任何想法?