Hello!
We’re about to upgrade our application from 2.02 to 2.03 and want to know if there’s any expectation of ABI compatibility between the two. Some plugins for example may be linked against 2.02 but once we update the application to 2.03 they’ll find that DLL at runtime.
For example, does the FMOD system run-time use the client’s header version to correctly handle client code compiled against 2.02 where struct parameters have moved. FMOD_ADVANCEDSETTINGS seems to have things moved between 2.02 and 2.03.
Thanks,
Chris
Essentially no, the FMOD API can (and does) change between major version, this is our opportunity to clean things up or make breaking changes. When these changes occur, they are documented in the API differences section of what’s new with each version, for example here is the 2.03 list.
If your 2.03 application finds a 2.02 DLL it will likely runtime error with mismatched symbols, even if it doesn’t, we have a runtime version check to ensure DLLs and headers are from the same major version.
The exception to this rule is DSP plugins, which maintain their own separate compatibility that can stretch across several major versions.