我正在使用FMOD API,它确实是一个C API。
并不是说这有什么不好。只是它与C++代码的接口不太好。
例如,使用
FMOD_Channel_SetCallback( channel, callbackFunc ) ;
它需要一个C风格的函数作为callbackFunc,但我想传递一个类的成员函数给它。最终,我采用了Win32技巧,将成员函数变为静态函数。这样就可以作为回调函数进入FMOD了。现在我必须修改我的代码,使一些成员变量成为静态的,以适应FMOD的C风格。我想知道是否有可能在FMOD中或者有没有方法将回调链接到特定的C++对象实例成员函数(而不是静态函数),这样会更加顺畅。