FIXED: TD Update Changed SDK

Hi,

Not exactly a bug, but kinda-sorta.

I’ve been developing a C++ DLL using the TD SDK for a CPlusCPlus Top. It was working fine, but when I upgraded my version of TD 099 it suddenly stopped working. After a lot of testing, I found that the cause was that the SDK had changed in the new TD version causing the getTOPDataInCPUMemory() to always return null. It took me quite a while to realize what had happened since no messages were output, but once I did, it was an easy fix to copy the new CPlusPlus_Common.h and TOP_CPlusPlusBase.h files into the project and rebuild it.

The odd thing was that project was still building with the old files, just silently failing at runtime.

The change appears to have happened somewhere between these 2 releases:
2017.16620 Mar 09 18
2018.23470 Jun 05 18

I am now wondering how often changes are made to the SDK that are not backwards-compatible and cause previously working DLL’s to stop working?

Also, might I suggest that when such a change is made to the SDK that some kind of version check is performed that alerts the user to the incompatibility of the DLL? I know that part of the setup process for a DLL is the setting of the TOPCPlusPlusAPIVersion variable, but in my case this did not change between the TD versions (both are 8), even though they are incompatible.

Thanks,
Clay Budin
NYC

Sorry about that. This bug will be fixed in builds 2018.24160 or later. When you upgrade to that build (or later) you’ll want to either move back to the older (2017.10000) headers, or use the new headers that will be in 2018.24160+.
We do use the versions returned from the plugin to determine behavior and ensure backwards compatibility. A paste error in the OP_Inputs class resulted in incorrect virtual function order for the 2018.20000 builds before that. Thanks for the report and I’m very sorry about the issue!