From: Keith M. <kei...@us...> - 2008-03-12 22:29:50
|
On Wednesday 12 March 2008 07:14, fei huang wrote: > I've found the problem is due to my macro, only _MSC_VER > includes windows.h and stdio.h but __MINGW32__ not... Earnie has already beaten me to it, in recommending _WIN32 as a better macro choice, but just to consolidate:-- - Use `#ifdef _WIN32' to guard code which is generic for native Win32 API, irrespective of the compiler in use. - Use `#ifdef _MSC_VER' *only* if the guarded code absolutely *must* be compiled using a Microsnot compiler. In this case, you should provide fallback code for other compilers, so you really should have a *very* compelling reason to provide the _MSC_VER specific code at all; in the majority of cases, you might just as well use the generic _WIN32 code without any need for the _MSC_VER specific alternative. - Use `#ifdef __MINGW32__' only for code which explicitly requires the MinGW 32-bit compiler; again, instances of this should be rare, in comparison with instances where _WIN32 would be the more appropriate. Regards, Keith. |