In many places in the Adobe SDK function definitions like this can be found:
static ACCB1 ASBool ACCB2 WordCounterProc (...) {...}
Usually functions are allowed to have only one return value (in this case
ASBool
… and yes, I know that more return variables can be passed as
arguments). After a lengthy search (Visual C++ 6.0 ist stone age compared to 2.1) I have
been able to find out that these are platform-specific macros that seen to necessary for
each funtion definition.
From WinPltfm.h
:
#ifdef _WIN32 #define ACROCALLBACK #define ACCB2 #else #define ACROCALLBACK __loadds #define ACCB2 __loadds #endif #define ACCB1
And the corresponding piece of code from MacPlatform.h
:
#define ACCB1 pascal #define ACCB2
In the same file, there is a nice paragraph:
/* // I have no idea why this code was here in the first place, // since I can't figure out what it could ever do. But I've // left it in in case someone far smarter than I can see a use // for it. #if DEBUG #ifndef DEBUG #define DEBUG 1 #endif #endif */
An sehr vielen Stellen im Adobe-SDK tauche Funktionsdefinitionen wie diese auf:
static ACCB1 ASBool ACCB2 WordCounterProc (...) {...}
Dabei dürfen Funktionen nur einen Rückgabewert haben (in diesem Fall also
ASBool
… und ja, ich weiß, dass man als Argumente noch weitere
Rückgabewerte übergeben kann). Nach längerer Suche (Visual C++ 6.0 ist Steinzeit verglichen
mit Eclipse 2.1) habe ich herausfinden können, dass das plattformspezifische Makros sind,
die bei offenbar jeder Funktionsdefinition auftauchen müssen.
Aus WinPltfm.h
:
#ifdef _WIN32 #define ACROCALLBACK #define ACCB2 #else #define ACROCALLBACK __loadds #define ACCB2 __loadds #endif #define ACCB1
Und die gleiche Stelle aus MacPlatform.h
:
#define ACCB1 pascal #define ACCB2
In derselben Datei findet sich auch noch eine nette Stelle:
/* // I have no idea why this code was here in the first place, // since I can't figure out what it could ever do. But I've // left it in in case someone far smarter than I can see a use // for it. #if DEBUG #ifndef DEBUG #define DEBUG 1 #endif #endif */