所以,我正在使用 FMOD api,它确实是一个 C api。
并不是说这很糟糕或任何事情。只是它与 C++ 代码的接口不好。
例如,使用
FMOD_Channel_SetCallback( channel, callbackFunc ) ;
它需要一个 C 风格的函数callbackFunc
,但我想将一个类的成员函数传递给它。
我最终为此使用了 Win32 技巧,使成员函数成为静态的。然后它作为 FMOD 的回调。
现在我必须破解我的代码以使一些成员静态,只是为了说明 FMOD 的 C 特性。
我想知道它在 FMOD 中是否可行,或者是否有办法将回调链接到特定 C++ 对象的实例成员函数(不是静态函数)。会顺畅很多。