Missing JUCE_API

#21

I hope too, thanks for your reactivity

0 Likes

#22

Hi !

It seems that JUCE_API is missing on class WindowsRegistry definition
in /modules/juce_core/misc/juce_WindowsRegistry.h file.

Thanks in advance for this change.

0 Likes

#23

Hi !

It seems that JUCE_API is missing on the two internal class Listener of class MPEInstrument and MPEZoneLayout

Respectivelly in

modules\juce_audio_basics\mpe\juce_MPEInstrument.h line 233

and

modules\juce_audio_basics\mpe\juce_MPEZoneLayout.h at line 132
 

Thanks in advance for this change.

0 Likes

#24

Thanks. (I'll actually make them inline rather than adding the export definition, but that should also work)

0 Likes

#25

Unfortunately, with your last fix, Visual Studio is still complaining when a JUCE_API class intheriting from a non JUCE_API interface.

Inlined or not.

warning C4275: non dll-interface class 'juce::MPEInstrument::Listener' used as base for dll-interface struct 'juce::MPESynthesiserBase'

I think JUCE_API must be set. As your twelve other Listner class does.

Thanks again for your reactivity.

 

0 Likes

#26

We actually have many Listener classes that don't use the flag, so I did it like this to match those.

Not sure why VS has a problem with this, the code is perfectly legit, but <sigh> will add the flag...

0 Likes

#27

I understand your disappointment about this ugly dllexport syntax...

Listener who must avoid JUCE_API are template based.

Non template Listener without JUCE_API are without warning when inherited only by non JUCE_API internal Juce class.

 

Thanks again for this !

 

 

 

0 Likes

#28

Hi !

I just found some extra missing JUCE_API in OpenGL module:
This will allow OpenGLAppExample to link with Juce build in DLL.

in juce_OpenGLAppComponent.h line 37 for the OpenGLAppComponent class.
in juce_OpenGLShaderProgram line 128 for the OpenGLShaderProgram::Uniform struct
in juce_OpenGLShaderProgram line 173 for the OpenGLShaderProgram::Attribute struct.

Thanks in advance for this.

0 Likes

#29

Hi !

Add JUCE_API to RelativeTime’s global operators would be welcome !

Thanks in advance for this !

0 Likes

#30

Sure, will add those, ta!

0 Likes

#31

…umm, hang on, static methods like that don’t need the JUCE_API flag. Do you mean JUCE_CALLTYPE?

0 Likes

#32

In fact you are right, for proper Windows DLL build we need both of them,
Like it was already done for juce::String ones.

Thanks a lot for your incredible reactivity.

0 Likes

#33

No… the functions in String.h are free functions, not methods like the RelativeTime ones.

IIRC JUCE_CALLTYPE is actually only needed for RTAS builds on Windows, so unnecessary here. And JUCE_API is already applied to the RelativeTime class itself, so isn’t needed on its static methods.

What problems are you actually seeing to have asked this question?

0 Likes

#34

ok, sorry, just realised that you’re talking about the operators, I assumed you meant the static methods… Doh. OK, will sort that out!

1 Like

#35

Thanks for this Quick fix !
Sorry to do not sending you all of the following missing JUCE_API in one shot:

Here another related change:

in juce_ModalComponentManager.h class Callback inside ModalComponentManager line 52 should also benefit from JUCE_API.

Those ones are still missing:

in juce_OpenGLAppComponent.h line 37 for the OpenGLAppComponent class.
in juce_OpenGLShaderProgram line 128 for the OpenGLShaderProgram::Uniform struct
in juce_OpenGLShaderProgram line 173 for the OpenGLShaderProgram::Attribute struct.

Thanks in advance for all of this.

0 Likes

#36

Hi !

I discover two missing JUCE_API for Windows DLL build in
juce_core/network/juce_URL.h

line 352: class JUCE_API DownloadTask
and line 356: struct JUCE_API Listener

Many thanks in advance for those fixes
All the best

0 Likes

#37

Thanks for reporting!

1 Like

#38

You are welcome,
Many thanks for your reactivity.
Regards

0 Likes

#39

Hi !

I’v found a missing JUCE_API in juce_MessageManager.h developer branch:
@line 204:
class JUCE_API Lock

Thanks in advance for this.

0 Likes

#40

Thanks, will get that added.

1 Like