我想包装(Facade Pattern
)Allegro 对线程的使用,即我install_int_ex(void (__cdecl*)(void), int tick);
编写remove_int(void (__cdecl*)(void))
的一个使用模板user-defined Functor Objects
的类,并在创建和销毁类时安装中断和删除中断。
我不断收到编译器错误:error C2664: 'install_int_ex' : cannot convert parameter 1 from 'void (__thiscall [User-defined FunctorName Here]::* )(void)' to 'void (__cdecl *)(void)'
和类似的remove_int(void (__cdecl*)(void))
如果被调用的函数接受指向用户数据的指针,这似乎可行void*
不幸的是,Allegro 没有这么灵活。有没有办法绕过这个限制,或者我将不得不使用 Windows CreateThread
(并在这个过程中学习线程“真正的方式”)?