windows.h breaks ObjC ?
Helge Hess
helge@mdlink.de
Tue Nov 30 23:39:00 GMT 1999
MarketLogix wrote:
>
> 1. I understand that M$ has its need of the "interface" label.
>
> 2. This is NOT the problem.
>
> 3. "interface" is distinct from "@interface".
Maybe this is the misconception, these two are *not* distinct from the
preprocessor's point of view.
> 4. No problem with the global name space yet.
>
> Right ?
I don't think so.
> 5. Now all of a sudden in the new Cygnus windows api headers
> we get this bad boy:
>
> #define interface struct
As you already found out yourself, this is no real problem as this can
be undefined/redefined.
> What the heck nobody really codes in ObjC anymore anyway right ?
No. This is an API compability problem found with a lot of other
libraries as well and this problem is rooted in C's concept of defines.
> Ah, they didn't create #undef for nothing ... RIGHT ?
Yepp.
> The first baby steps toward breaking Objective-C compatibility
> within Cygwin sources.
I think you are overreacting, you can't really 'break' Objective-C
compatibility since it is complete ANSI-C and you would have exactly the
same problems when using plain ANSI-C (with some other lib). You can
easily 'unbreak' this using a small header file.
Actually windows.h of cygwin tries to emulate the M$ stuff and therefore
needs to provide these macros. If the people are kind they can provide
appropriate wrapper headers (eg objc/windows.h or #ifdef OBJC), but
personally I don't think this is really necessary.
Greetings
Helge
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com
More information about the Cygwin
mailing list