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

    Can't build my plugin's Solution in Visual Studio 2019 after updating to C4D 2024.3.1

    Bugs
    windows 2024
    2
    8
    1.7k
    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.
    • sasha_janvierS
      sasha_janvier
      last edited by

      Hey guys,

      I'm not sure exactly if this is a Visual Studio 2019 issue or a Cinema 4D issue...

      I've been working on my plugin for months now and throughout the plugin's development, I've updated from 2024.1.0 to 2024.3.1. None of the Cinema 4D updates have ever caused any problems in regards to my plugin development, until now.

      As of this morning, when building my solution in Visual Studio 2019, I get the error message: "Cinema 4D.exe has triggered a breakpoint."

      Visual Studio 2019 then opens a new tab named "No Symbols Loaded", which contains the message "application_opt.pdb not loaded".

      Additionally, right before the breakpoint is triggered, I noticed the following message being logged in Visual Studio 2019's "Output" window when building the solution:

      Forcing folder to be mounted as database (https://assets.maxon.net/assets/sdkdatabase.db) instead of nullptr
      
      objectbase1.hxx(537): CRITICAL: Method net.maxon.interface.nimbusbase.GetGraphNodeFromBaseList@72780fd07b2bfeae not implemented by NimbusBaseStaticImpl (requested by file:///C:/Code/sdk/plugins/example.assets/example.assets.xdl64). [object_impl.cpp(913)]
      
      Cinema 4D.exe has triggered a breakpoint.
      

      I have spent the last 1 hour and a half on Google reading StackOverflow threads and I have tried multiple things, none of which have resolved my problem.

      I have not made any changes to my code after updating Cinema 4D to 2024.3.0 and 2024.3.1. All I did was open Visual Studio 2019 and click "Local Windows Debugger" to launch Cinema 4D.

      Any insight or guidance would be immensely helpful. I wonder if I am the only one running into this issue since the latest update?

      Thank you!

      Sasha Janvier

      ferdinandF 2 Replies Last reply Reply Quote 0
      • ferdinandF
        ferdinand @sasha_janvier
        last edited by

        Hey @sasha_janvier,

        Thank you for reaching out to us. Just in case you are still working on this: You won't find here an answer on StackOverflow, and this is not a VisualStudio issue. You cannot do much on your own here, and I am 99% sure what the issue is. But I have to confirm my hunch first.

        I will come back today with a complete answer.

        Cheers,
        Ferdinand

        MAXON SDK Specialist
        developers.maxon.net

        1 Reply Last reply Reply Quote 1
        • ferdinandF
          ferdinand @sasha_janvier
          last edited by ferdinand

          Hello @sasha_janvier,

          thank you for bringing this to our attention. The main issue is here that we introduced an ABI incompatibility between 2024.2 and 2024.3. This will be hot fixed in the next weeks, in the mean time you can either not debug against 2024.3, exclude example.assets from your solution, or simply ignore the problem and hit continue (the green arrow in Visual Studio) once you hit the critical stop upon running a debug session. For details, please see our service announcement about the issue.

          Your Questions

          Visual Studio 2019 then opens a new tab named "No Symbols Loaded", which contains the message "application_opt.pdb not loaded".

          The error occurs in the binaries of Cinema 4D. Whenever you encounter a critical error, critical stop, or debug stop in a binary for which you do not have the source code or a symbols database, Visual Studio will open this window.

          When you do not have the symbols for a binary your are debugging, you will only see memory offsets in for example a call stack and not the symbols. I.e., not Cinema 4D.exe!FancyClass.FancyFunction() but Cinema 4D.exe!00007ff7a8109709. This is normal, we do not ship the symbol database of Cinema 4D (the application_opt.pdb) as this would give a deeper insight into our internal code base than we are willing to give.

          2f565d74-2b53-49af-8689-c1d7e8560a1a-image.png

          Forcing folder to be mounted as database (https://assets.maxon.net/assets/sdkdatabase.db) instead of nullptr.

          While I could reproduce the ABI problem, I could not reproduce this and I did a lot of testing of this with multiple SDKs today. This means that you failed to load the SDK asset database. Due to the ABI problem, it is currently not possible to truly test the Asset API examples in .3, but in .2 everything is working fine.
          65c3d7f5-5836-40bf-918f-bf5690813eba-image.png

          And since this is just the availability of an online resource, I would think that this is rather a problem on your side than a problem of 2024.3.

          • Do you see the SDK asset database in 2024.2?
          • Are you using any firewalls or VPNs that might restrict access to that URL?
          • FYI: It is normal that your browser will tell you that access failed when you try to open https://assets.maxon.net/assets/sdkdatabase.db in the browser.

          Cheers,
          Ferdinand

          MAXON SDK Specialist
          developers.maxon.net

          1 Reply Last reply Reply Quote 1
          • sasha_janvierS
            sasha_janvier
            last edited by

            Wow, thank you very much, @ferdinand! This was extremely insightful and informative. I didn't know what application_opt.pdb was until I read your message. Thank you.

            I manually excluded/unchecked example.assets from my solution and rebuilt my solution and while this got rid of the "Forcing folder to be mounted as database (...assets/sdkdatabase.db) instead of nullptr" error, the objectbase1.hxx(537) error (which triggers a breakpoint), as well as the Symbol error are still there (the latter being expected I guess).

            Do you see the SDK asset database in 2024.2?

            In the SDK > Assets folder, I am seeing 11 presets divided in multiple categories, .e.g "Model" (1 item), "Material" (4 items), "Scene" (1 item), "Node" (1 item), "Node Operator" (1 item) and "Image Media" (3 items).

            ⚠ That said, I can confirm that the folder SDK > C++ > Asset API Examples is completely empty.

            Are you using any firewalls or VPNs that might restrict access to that URL?

            My firewall has remained untouched and no VPNs or anti-virus/spyware software are blocking requests to maxon.net.

            For the time being, although inconvenient and dare I say a bit annoying, I can hit "Continue" in Visual Studio after the breakpoint is triggered.

            I wish I could revert back to 2024.2, but I guess I need to message Maxon's team support to do so?

            I guess I could also test with 2023, but that would be less than ideal.

            Thank you once again for everything, @ferdinand. I really appreciate your assistance.

            Sasha Janvier

            ferdinandF 2 Replies Last reply Reply Quote 0
            • ferdinandF
              ferdinand @sasha_janvier
              last edited by ferdinand

              Hey,

              @sasha_janvier said in Can't build my plugin's Solution in Visual Studio 2019 after updating to C4D 2024.3.1:

              I manually excluded/unchecked example.assets from my solution and rebuilt my solution and while this got rid of the "Forcing folder to be mounted as database (...assets/sdkdatabase.db) instead of nullptr" error, the objectbase1.hxx(537) error (which triggers a breakpoint), as well as the Symbol error are still there (the latter being expected I guess).

              You must be doing something wrong then because I tripple checked that the SDK does not contain any other uses of NimbusBaseInterface. Removing example.assets will stop the error from showing up. Possible reasons for your ongoing problem could be:

              1. You did not properly exclude example.assets , there should be no module of that name in the modules section of the solution explorer.
              2. You did not remove the binary. When you have compiled the solution before, and there is still the physical file C:/Code/sdk/plugins/example.assets/example.assets.xdl64 on your disk, Cinema 4D will of course still load it when you just have set C:/Code/sdk/plugins/ as its plugins/modules directory. Simply delete the file. If you want to be extra nice, you could also delete the whole example.assets folder and drag in a fresh one from your sdk.zip. Doing that would ensure that you also delete all build fragments and not only the binary. But that is not really necessary.

              Will answer the remaining questions on Monday.

              Cheers,
              Ferdinand

              MAXON SDK Specialist
              developers.maxon.net

              1 Reply Last reply Reply Quote 1
              • ferdinandF
                ferdinand @sasha_janvier
                last edited by ferdinand

                Hey @sasha_janvier

                to answer the remaining topics:

                In the SDK > Assets folder, I am seeing 11 presets divided in multiple categories, .e.g "Model" (1 item), "Material" (4 items), "Scene" (1 item), "Node" (1 item), "Node Operator" (1 item) and "Image Media" (3 items). That said, I can confirm that the folder SDK > C++ > Asset API Examples is completely empty.

                That is normal, that is how the SDK database should look like. The C++/Python sections are filled when you run some of our code examples.

                My firewall has remained untouched and no VPNs or anti-virus/spyware software are blocking requests to maxon.net.

                Hm, since you can actually load the SDK database, this makes sense. It is still odd that you have that database mounting error in your console. Are you sure that it only happens when debugging 2024.3.X? Or does it also happen on older versions for you?

                I wish I could revert back to 2024.2, but I guess I need to message Maxon's team support to do so?

                I have sent you a download link via PM which should work. If it does not, yes, you would have to contact user support.

                PS: But when everything goes well the hotfix should be here quite soon.

                Cheers,
                Ferdinand

                MAXON SDK Specialist
                developers.maxon.net

                ferdinandF 1 Reply Last reply Reply Quote 1
                • ferdinandF ferdinand moved this topic from Cinema 4D SDK on
                • ferdinandF
                  ferdinand @ferdinand
                  last edited by

                  Hello @sasha_janvier,

                  your core issue has been hot fixed in 2024.3.2. See our announcment for details.

                  Cheers,
                  Ferdinand

                  MAXON SDK Specialist
                  developers.maxon.net

                  1 Reply Last reply Reply Quote 1
                  • sasha_janvierS
                    sasha_janvier
                    last edited by

                    @ferdinand Yay! Amazing. I can confirm that my solution builds without any problems in 2024.3.2.

                    Big thanks to you and the dev team at Maxon! 🙂

                    Sasha Janvier

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