Warning: Unintentional Incompatibility between Cinema 4D 2024.2 and 2024.3 C++ ABI
-
Dear Development Community,
due to an oversight, we have unintentionally broken the C++ ABI compatibility between 2024.2 and 2024.3. We will fix this issue in an upcoming hotfix that follows 2024.3.1 (2024.3.1 does not contain the fix).
What is an ABI and how does it affect me? The ABI compatibility determines if plugins with a lower minor version are compatible to a higher minor version within a major release. E.g., if a plugin compiled with the 2024.1.0 SDK also runs under Cinema 4D 2024.3.1. We guarantee ABI upwards compatibility within one major version, this promise is temporarily being broken here. See also Plugin Development: Cinema 4D SDK for more information about ABIs.
Affected Entities
Binary incompatibilities have been specifically introduced for:
- NimbusBaseInterface::FindCorrespondingBaseList()
- NimbusBaseInterface::FindOrCreateCorrespondingBaseList()
- NimbusBaseInterface::GetGraphNodeFromBaseList()
- NimbusBaseInterface::GetNodePathFromBaseList()
Rendering in effect both maxon::NimbusBaseInterface and a reference to such object, a
maxon:NimbusBaseRef
, unusable.Effect for Developers and Users
All 2024.0.X to 2024.2.X plugins using the affected entities are not upwards compatible beyond 2024.2.X. Since the C++ SDK is using the type
NimbusBaseInterface
too, it will raise a critical stop when debugging with a 2024.0 up to 2024.2 SDK against a 2024.3 Cinema 4D binary. Below you can see an example of the critical stop being raised.C++ plugins compiled for pre 2024.0 APIs are not affected by this. C++ plugins for 2024.X that do not make use use of maxon::NimbusBaseInterface
ormaxon::NimbusBaseRef
are not affected by this.Python plugins are not affected by this. Solution
Maxon Computer will provide a hotfix Cinema 4D 2024.3.2 which will solve the problem. The hotfix is to be expected within the next two weeks. In the mean time, you can do the following:
Developers using NimbusBaseInterface
Until the hotfix, you can only tell your customers that your plugin is not fully compatible with 2024.3. There are no other preliminary fixes.
Developers using the sdk.zip
We know that many developers are using the sdk.zip as the home for their project. Here you have a few options until the hotfix arrives.
- Do not debug against 2024.3.X
- Remove the line
plugins/example.assets;\
from\sdk\plugins\project\projectdefintion.txt
and rebuild your solution using the project tool. - You can also simply ignore the critical stop and press continue once when you boot. Since you are not shipping the example.asset.xdl64/dylib binaries with your plugin, it will not be affected by this.
When you have any questions or concerns, please do not hesitate to voice them below or reach out to us via our contact form.
Please excuse the inconvenience,
the Maxon SDK TeamModified
\sdk\plugins\project\projectdefintion.txt
you can use to disable the asset API examples in a 2024 SDK.Platform=Win64;OSX Type=Solution Solution=\ plugins/example.main;\ plugins/example.migration_2024;\ plugins/example.nodes;\ plugins/example.image