Hello.
VAX doesn't process a such macro correctly:
#if (defined(P_EXPAT_WIN64) && defined(P_64BIT) ) || \ (defined(P_EXPAT_WIN32) && !defined(P_64BIT) && !defined(_WIN32_WCE)) || \ (defined(P_EXPAT_WINCE) && defined(_WIN32_WCE)) || \ (defined(P_EXPAT_LIBRARY_W64_DEBUG) && defined(P_64BIT)) || \ (defined(P_EXPAT_LIBRARY_W32_DEBUG) && !defined(P_64BIT) && !defined(_WIN32_WCE)) || \ (defined(P_EXPAT_LIBRARY_WM5_DEBUG) && defined(_WIN32_WCE)) || \ (defined(P_EXPAT_LIBRARY_WM6_DEBUG) && defined(_WIN32_WCE))
#define P_EXPAT 1
#endif
It highlights only the first line and shows "#define P_EXPAT 1" with gray color.
So all definitions in my project based on P_EXPAT value are not processed by VAX.
Line "#define P_EXPAT 1" is executed correctly by compiler.
I'm using Visual Studio 2008.