我是Firebreath的新手。我有一个工作组通过Firebreath通过网页使用上传文件DLL。 现在我有一个回调问题。 我的dll中有一个API。
int idu_initialize(transfer_callback pf);
回调函数指针定义如下:
typedef void (*transfer_callback)(const char*)
transfer_callback是一个上传进程回调函数。 我希望html页面可以使用transfer_callback来刷新html UI。 我执行以下步骤: 方法1 定义一个PluginJsAPI函数
registerMethod("fire_idum_initialize", make_method(this, &IDUMPluginAPI::fire_idum_initialize));
int fire_idum_initialize();
callback function like this:
void print_transfer_info(const char *s)
{
}
int IDUMPluginAPI::fire_idum_initialize()
{
int result = idu_initialize(print_transfer_info);
return result;
}
在文件上传过程中,调试指针可以进入print_transfer_info回调 我在debug html中定义了一个js函数
function load()
{
addEvent(plugin(), 'upcb', function(msg){
document.getElementById('callbackDiv').innerHTML=msg;});
}
我想在print_transfer_info中调用fire_upcb(s)宏,但是print_transfer_info不是IDUMPluginAPI成员函数,不能调用fire_upcb(s) 我该怎么走? 方法2: 定义一个js函数回调,但我怎么能comsume print_transfer_info回调? 如何从dll回调函数print_transfer_info向js发送fire事件。 print_transfer_info不是类成员函数;即使将print_transfer_info定义为静态类成员函数,也不能调用fire_event。 任何建议都非常感谢,谢谢。