Mail Archives: cygwin/1999/10/31/10:01:15
"Michael P." <migueldetrix AT forum DOT dk> writes:
> Hi all!
>
> I have been compiling a test program for the C/FRONT interface to Navision
> Financials. The code works fine when using both the MS Visual C++ and the
> LCC-compiler.
>
> But when trying to compile using egcs or cygwin, I get a parse error in some
> typedef statements. What am I doing wrong?
>
> This is the code causing the error:
> // Start
>
> #ifdef _MSC_VER
> #define DBL_CDECL __cdecl
> #else
> #define DBL_CDECL _cdecl
> #endif
>
> typedef void (DBL_CDECL *DBL_pFuncExceptionHandler)(DBL_S32 ErrorCode,
> DBL_BOOL IsFatal);
> typedef void (DBL_CDECL *DBL_pFuncMessageShowHandler)(DBL_U8* Message, DBL_U
> 32
> MessageType, DBL_S32 ErrorCode);
>
> // End
>
> It would be a great help to me, if someone could help me. I prefer using the
> egcs or cygwin.
>
For GCC, there is a predefined macro, __cdecl, that gets translated to
__attribute__((cdecl)) and marks the function to use one particular
return convention. Some compilers, notably Borland and obviously LCC,
predefine both _cdecl and __cdecl.
Here's the fix:
#if defined (_MSC_VER) || defined (__GNUC__)
#define DBL_CDECL __cdecl
#else
#define DBL_CDECL _cdecl
#endif
Regards,
Mumit
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -