我已经查看了所有类似的问题,但是这个特定的情况似乎并没有出现。指定类函数的结构成员函数指针
我有一个插件系统,其中插件接收函数的地址,只要它想插入一个钩子(这是一个类函数)就可以调用。
插件:
struct plugin {
...
bool (*insert_hook)(hook_data*);
...
};
类:在经理
class manager {
...
private:
InsertHook(hook_data *hook);
...
};
创建功能:
{
...
typedef bool (manager::*InsertHookFunc)(hook_data*);
InsertHookFunc hook_func = &manager::InsertHook;
// assigning this to the plugin ???
// C2440, cannot convert from 'hook_func' to 'bool (__cdecl *)(hook_data *)'
plugin->insert_hook = hook_func;
...
}
经理调用到插件,如果插件需要插入任何挂钩,它需要打电话给经理。
这样做的正确方法是什么?我知道它正常工作(插件传递一个函数指针到类创建函数来请求一个插件对象),但它似乎我不能分配它由于它是一个类函数(使用非类功能,这项工作很好)。
我可以创建一个非类功能的朋友可以到经理,但我敢肯定,这可以直接做的,我只是不出来...
你可以使用boost库吗? –
提升是不可用的,因为它会依赖于插件设计 - 目的是最大限度地减少插件需要的工作量 – ZXcvbnM