Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Warning: Unintentional Incompatibility between Cinema 4D 2024.2 and 2024.3 C++ ABI

    News & Information
    information support cinema 4d c++
    1
    1
    1.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ferdinandF
      ferdinand
      last edited by ferdinand

      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 or maxon::NimbusBaseRef are not affected by this.
      ⚠ Python plugins are not affected by this.

      d9261272-0760-44f3-8912-86c7442caf56-image.png

      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 Team

      Modified \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
      

      MAXON SDK Specialist
      developers.maxon.net

      1 Reply Last reply Reply Quote 0
      • First post
        Last post