This looks like a weird bug/behavior to me. If I compile a source file using a precompiled headers extra defines passed to compiler are ignored, meaning that it is impossible to switch between export/import via such defines as common pratice.
1. pch creation
icl "-Fp./mypch" "-Ycmypch.hxx" "-FImypch.hxx"
2. pch usage
icl a.cxx "-Fp./mypch" "-Ycmypch.hxx" "-FImypch.hxx" -DDLL_DUMMY
then adding a error pragma to a.hxx to verify if DLL_DUMMY is defined fails with an error.
Same usage under msvcN (N >= 8) is no problem.
It looks like the compiler does not allow passing additional defines, if using a precompiled header (?!).