parse error ? Am I the only one?

Mumit Khan khan@nanotech.wisc.edu
Sun Oct 31 19:54:00 GMT 1999


"Michael P." <migueldetrix@forum.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@sourceware.cygnus.com



More information about the Cygwin mailing list