Win32 Defines & C++

Mumit Khan
Wed Mar 31 19:45:00 GMT 1999

On Wed, 24 Mar 1999, Nirmal Prasad wrote:

> This is not a cygwin related query,bug or feature request but if someone can
> help it will be great b'cos i am getting this problem in some code that i
> have while compiling under cygwin.

Neither is this a GCC problem, since you'll get the same result with MSVC
or any other C++ compiler!

> The problem i am facing is that i have some c++ class that has a member
> function which is the same as a win32 define (e.g. GetNextWindow). The
> problem is that the pre-processor substitues this and the compiler complains
> that there is something wrong. One of the solutions i thought of getting
> around this is to make the #define'd macro to an inline function and the
> code would then compile but this would be tedious if its a lot of macros . I
> was wondering if there is any other elegant solution such that i dont have
> to change any code.????

The problem of these macro definitions in Win32 API headers causes lots
of problems even in standard-conformant code; the only (obvious) suggestion 
I can give is not to name member functions with the same name as a win32 
API function (or just rename it when you find one that clashes).

The API headers were designed by folks who think C is the only language,
and even botches that badly.

Years ago, I remember putting together a set of platform specific
"undef.h" files that I would include after the system includes to avoid
this mess, but that really isn't the right solution. However, since you
want to avoid code changes, this may be a solution for you. 


Want to unsubscribe from this list?
Send a message to

More information about the Cygwin mailing list