diff --git a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h index 811d17f660..85d1d75462 100644 --- a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h +++ b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h @@ -80,12 +80,9 @@ #endif //============================================================================== -#if __LP64__ && (defined(__APPLE_CPP__) || defined(__APPLE_CC__)) // (disable VSTs and RTAS in a 64-bit mac build) - #undef JucePlugin_Build_RTAS -#endif - -#if _WIN64 // (disable RTAS in a 64-bit windows build) +#if _WIN64 || (__LP64__ && (defined(__APPLE_CPP__) || defined(__APPLE_CC__))) #undef JucePlugin_Build_RTAS + #define JucePlugin_Build_RTAS 0 #endif //============================================================================== diff --git a/modules/juce_core/memory/juce_Memory.h b/modules/juce_core/memory/juce_Memory.h index 46a71006e2..6dd66d5ed7 100644 --- a/modules/juce_core/memory/juce_Memory.h +++ b/modules/juce_core/memory/juce_Memory.h @@ -92,7 +92,7 @@ inline Type* createCopyIfNotNull (const Type* pointer) { return pointer != n avoiding problems when an object is created in one module and passed across to another where it is deleted. By piggy-backing on the JUCE_LEAK_DETECTOR macro, these allocators can be injected into most juce classes. */ -#if JUCE_MSVC && defined (JUCE_DLL) && ! DOXYGEN +#if JUCE_MSVC && (defined (JUCE_DLL) || defined (JUCE_DLL_BUILD)) && ! DOXYGEN extern JUCE_API void* juceDLL_malloc (size_t); extern JUCE_API void juceDLL_free (void*); diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index 61732809fe..657e5f4ce1 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -131,6 +131,12 @@ #define JUCE_API /**< This macro is added to all juce public class declarations. */ #endif +#if JUCE_MSVC && JUCE_DLL_BUILD + #define JUCE_PUBLIC_IN_DLL_BUILD(declaration) public: declaration; private: +#else + #define JUCE_PUBLIC_IN_DLL_BUILD(declaration) declaration; +#endif + /** This macro is added to all juce public function declarations. */ #define JUCE_PUBLIC_FUNCTION JUCE_API JUCE_CALLTYPE diff --git a/modules/juce_gui_basics/widgets/juce_ListBox.h b/modules/juce_gui_basics/widgets/juce_ListBox.h index 77e569f48f..d37af9664f 100644 --- a/modules/juce_gui_basics/widgets/juce_ListBox.h +++ b/modules/juce_gui_basics/widgets/juce_ListBox.h @@ -553,8 +553,8 @@ public: private: //============================================================================== - class ListViewport; - class RowComponent; + JUCE_PUBLIC_IN_DLL_BUILD (class ListViewport); + JUCE_PUBLIC_IN_DLL_BUILD (class RowComponent); friend class ListViewport; friend class TableListBox; ListBoxModel* model; diff --git a/modules/juce_gui_basics/widgets/juce_Slider.h b/modules/juce_gui_basics/widgets/juce_Slider.h index 8c4b88e039..4c975c1e9e 100644 --- a/modules/juce_gui_basics/widgets/juce_Slider.h +++ b/modules/juce_gui_basics/widgets/juce_Slider.h @@ -813,7 +813,7 @@ protected: private: //============================================================================== - class Pimpl; + JUCE_PUBLIC_IN_DLL_BUILD (class Pimpl); friend class Pimpl; friend class ScopedPointer; ScopedPointer pimpl; diff --git a/modules/juce_gui_basics/widgets/juce_TextEditor.h b/modules/juce_gui_basics/widgets/juce_TextEditor.h index a48c9d31f9..bf58d1429d 100644 --- a/modules/juce_gui_basics/widgets/juce_TextEditor.h +++ b/modules/juce_gui_basics/widgets/juce_TextEditor.h @@ -643,7 +643,7 @@ protected: private: //============================================================================== class Iterator; - class UniformTextSection; + JUCE_PUBLIC_IN_DLL_BUILD (class UniformTextSection); class TextHolderComponent; class InsertAction; class RemoveAction; diff --git a/modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h b/modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h index 8499959878..71352f5cd8 100644 --- a/modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h +++ b/modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h @@ -70,7 +70,7 @@ public: private: //============================================================================== - class Pimpl; + JUCE_PUBLIC_IN_DLL_BUILD (class Pimpl); ScopedPointer pimpl; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (SystemTrayIconComponent);