But the silly thing I think is that the macro is defined for __GNUC__ and it clearly does not work with it. If I undefine that token, it's good.
I don't like the idea of touch the sdk headers; I thought really they should work out of the box. Rui's solution seems to be similar to mine (getting rid of __cdecl). Whereas this one just fixes the macro to keep the calling convention as it is. I have not been able to test the plugin yet, perhaps I'll have a better idea of what I should do then. Victor ----- Original Message ----- From: "Pedro Lopez-Cabanillas" <pedro.lopez.cabanil...@gmail.com> To: "Rui Nuno Capela" <rn...@rncbc.org> Cc: "Victor Lazzarini" <victor.lazzar...@nuim.ie>; <linux-audio-dev@lists.linuxaudio.org> Sent: Thursday, August 27, 2009 5:28 PM Subject: Re: [LAD] VST SDK2.4 issue > On Thursday, August 27, 2009, Rui Nuno Capela wrote: >> On Thu, August 27, 2009 15:58, Victor Lazzarini wrote: >> > Hi everyone, >> > >> > >> > perhaps one of you might have already seen this issue and will know >> > what >> > is the best solution. >> > >> > My problem is that one of the headers in the VST SDK2.4, aeffect.h, >> > has a macro, VSTCALLBACK, which in gcc will be defined as __cdecl . >> > This >> > is not recognised by the compiler, thus preventing me from using that >> > header (to build a plugin). >> > >> > >> > My solution was to forcibly undefine __GNUC__ so that the macro >> > gets a blank definition. >> > >> > However, I am not sure this is the best way out; I am wondering whether >> > the calling convention will break the plugin, since the host might be >> > expecting __cdecl and it will not be getting it. >> > >> > Perhaps someone else would have a different solution. >> >> on my qtractor stuff, i do something like this, >> >> >> #if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) >> #define __cdecl >> #endif >> >> #include <aeffectx.h> >> >> #if !defined(VST_2_3_EXTENSIONS) >> #define VSTCALLBACK >> #endif >> >> >> it seems to get it just fine :) > > I'd tried this: > > #define __cdecl __attribute__((cdecl)) > > Much like another typical MSVC keyword: > > #define __stdcall __attribute__((stdcall)) > > If you want to compare the documentation of both compilers: > > http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html > http://msdn.microsoft.com/en-us/library/984x0h58.aspx > > Regards, > Pedro _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev