While waiting for the correct up-to-date guidelines with answers to the open questions above, I gathered some more info about the PT80 and PT90 SDKs and their settings in relation to those of the Juce Demo Plugin. These are the out-of-the-box settings as you get them without changing anything:
Juce Demo Plugin facts
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: Default (except for juce_RTAS_... files which use 2 Bytes (*))
Calling convention: __cdecl (except for juce_RTAS_... files which are __stdcall)
Preprocessor Definitions: no _SECURE_SCL entry (and no _HAS_ITERATOR_DEBUGGING entry in Debug)
(*) the project settings for these files use Default for Struct Member Alignment, but these files include juce_RTAS_DigiCode_Header.h, which does a #pragma pack (2) on Windows, so they are also using 2 Bytes alignment
RTAS 8.0 SDK facts
PlugInLib
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: 2 Bytes
Calling convention: __stdcall
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug)
out-of-the-box settings (Release_default_aligned+cdecl):
Runtime Library: DLL
Struct Member Alignment: Default
Calling convention: __cdecl
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug_default_aligned+cdecl)
DSPManagerClientLib
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: 2 Bytes
Calling convention: __stdcall
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug)
RTASClientLib
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: 2 Bytes
Calling convention: __stdcall
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug)
RTAS 9.0 SDK facts
PlugInLib
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: Default
Calling convention: __cdecl
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug)
out-of-the-box settings (Release_stdcall+2byte):
Runtime Library: DLL
Struct Member Alignment: 2 Bytes
Calling convention: __stdcall
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug_stdcall+2byte)
DSPManagerClientLib
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: 2 Bytes
Calling convention: __stdcall
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug)
RTASClientLib
out-of-the-box settings (Release):
Runtime Library: DLL
Struct Member Alignment: 2 Bytes
Calling convention: __stdcall
Preprocessor Definitions: _SECURE_SCL=0 (and _HAS_ITERATOR_DEBUGGING=0 in Debug)
Notes
There is a difference between the 9.0 and 8.0 version for the PlugInLib: whereas in 8.0 the normal Release build uses 2 Bytes alignment / __stdcall, in the 9.0 version the normal Release build uses Default alignment / __cdecl.
Also, these were the 3 libs for which I could find a project to rebuild them: PluginLib.lib, DSPManagerClientLib.lib and RTASClientLib.lib.
There are actually 4 other libs that get linked in: DAE.lib, DigiExt.lib, DSI.lib and DSPManager.lib. But for these 4 other libs, I didn't find projects to rebuild them, so the only option is to use them as-is, even if we don't know with which settings they were built (probably VS2005?).
Regarding the _SECURE_SCL and _HAS_ITERATOR_DEBUGGING, the PT SDK says:
Due to known performance issues, these options are disabled in the libraries that are distributed with the 8.0 and 9.0 SDKs.
It is required that these options be disabled in any plug-in project built with these SDKs. If there is a mismatch of these options with any statically included library, you may experience hangs and crashes in your plug-in, so please note this change when converting your plug-in projects from an earlier version of the SDK.
To explicitly enable or disable these options for the entire SDK, modify their definition in each of the following projects and re-build:
Plug-in Library - \AlturaPorts\TDMPlugIns\PlugInLibrary\WinBuild\PlugInLib.vcproj
DSP Manager Client Library - \AlturaPorts\TDMPlugIns\DSPManager\WinBuild\DSPManagerClientLib.vcproj
RTAS Client Library - \AlturaPorts\Fic\Source\SignalNets\WinBuild\RTASClientLib.vcproj
So it looks like the Introjucer-generated project is not adding these preprocessor defintions to disable these options. Or, alternatively, if we do want to work with the settings the Introjucer generates (no preprocessor definitions), we need to remove the options in the PT SDK project files as well and rebuild them. But as it is now, it could lead to these hangs and crashes, right?