What exactly do JUCE_API and JUCE_CALLTYPE do


#1

I'm trying to learn more about the underlying library design of JUCE (because it is awesome as we all know). What exactly do these macros do?


#2

Uncover the mystery by looking at the definitions: they contain a bit of documentation. :)


#3

https://github.com/julianstorer/JUCE/blob/master/modules/juce_core/system/juce_PlatformDefs.h#L47

https://github.com/julianstorer/JUCE/blob/master/modules/juce_core/system/juce_StandardHeader.h#L119

Short version: Argument passing conventions and DLL export visibility.

 

 


#4

Ooops got it now. Was being a bit of a moron using XCode's "Jump to definition" feature which dumped me out at a place where nothing much was going on . . . 

#ifndef JUCE_API

 #define JUCE_API   /**< This macro is added to all juce public class declarations. */

#endif

If I had of scrolled up a few lines, I would have answered my own questions. DoH!