Any defines before the pre-compiled header will be ignored. Consider doing your define via a compiler level switch or via:
Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions
You can read more on MSDN:
When you use a precompiled header, the
compiler ignores all preprocessor
directives (including pragmas) that
appear before the hdrstoppragma. The
compilation specified by such
preprocessor directives must be the
same as the compilation used to create
the precompiled header file.
As for GCC pre compiled headers differ:
A precompiled header can't be used
once the first C token is seen. You
can have preprocessor directives
before a precompiled header; you can
even include a precompiled header from
inside another header, so long as
there are no C tokens before the
#include
.