We've updated all of the examples to show how to use the new TurboActivate API. The biggest change in C/C++ is properly "namespacing" the global functions (TA_CheckAndSavePKey() instead of CheckAndSavePKey() ) and using handles.
For all other languages the biggest change is that the member functions of the "TurboActivate class" cannot be called statically anymore. You now have to create a TurboActivate instance and call the functions. Again, all of these changes are show and explained in the examples and updated documentation: https://wyday.com/limelm/help/using-turboactivate/
TurboActivate will always be backwards compatible. Meaning the activation data from TA 2.x or 3.x will be read and upgraded to the new 4.x format without a hiccup.
>> "Will TurboFloat library 3 work with TurboFloat server 4? "
Yes.
>> "Will TurboFloat library 4 work with TurboFloat server 3? "
No. The TurboFloat Server always has to be as new as or newer than the TurboFloat Library versions (as a general rule -- there's wiggle room in the minor versions).
>> "That is, if it doesn't, I would have to make sure my updates to my own program coincided perfectly with the client's manually updates of the TurboFloat Server. "
Have them update the TurboFloat Server first. After they have done that they can roll out the new version of your app.
Let me know if that helps.