title: PCH Warning: header stop cannot be in a macro or #if block - Visual C++ 2010 Express SP1
body: <p>This is pasted from a website, which presumably was working. I did some googling and found that the issue I have now is a result of Visual C++ 2010 SP1, which I downloaded today, and is now giving me this error:</p>
  
  <p><code>PCH Warning: header stop cannot be in a macro or #if block.</code></p>
  
  <p>Hopefully someone will be able to help me with this!</p>
  
  <pre><code>#ifndef APP_STATE_H
  #define APP_STATE_H
  
  #include "Framework.h"
  
  class AppState; //this line is giving me the error
  
  //define two classes
  
  #endif
  </code></pre>
  
  <p>Framework.h:</p>
  
  <pre><code>#ifndef OGRE_FRAMEWORK_H
  #define OGRE_FRAMEWORK_H
  
  #include &lt;OgreCamera.h&gt;
  #include &lt;OgreEntity.h&gt;
  #include &lt;OgreLogManager.h&gt;
  #include &lt;OgreOverlay.h&gt;
  #include &lt;OgreOverlayElement.h&gt;
  #include &lt;OgreOverlayManager.h&gt;
  #include &lt;OgreRoot.h&gt;
  #include &lt;OgreViewport.h&gt;
  #include &lt;OgreSceneManager.h&gt;
  #include &lt;OgreRenderWindow.h&gt;
  #include &lt;OgreConfigFile.h&gt;
  
  #include &lt;OISEvents.h&gt;
  #include &lt;OISInputManager.h&gt;
  #include &lt;OISKeyboard.h&gt;
  #include &lt;OISMouse.h&gt;
  
  class OgreFramework : public Ogre::Singleton&lt;OgreFramework&gt;,OIS::KeyListener,OIS::MouseListener{
  public:
      OgreFramework();
      ~OgreFramework();
  
      bool initOgre(Ogre::String wndTitle, OIS::KeyListener *pKeyListener = 0, OIS::MouseListener *pMouseListener = 0);
      void updateOgre(double timeSinceLastFrame);
  
      //OIS
      bool keyPressed(const OIS::KeyEvent &amp;keyEventRef);
      bool keyReleased(const OIS::KeyEvent &amp;keyEventRef);
      bool mouseMoved(const OIS::MouseEvent &amp;evt);
      bool mousePressed(const OIS::MouseEvent &amp;evt, OIS::MouseButtonID id);
      bool mouseReleased(const OIS::MouseEvent &amp;evt, OIS::MouseButtonID id);
  
      Ogre::Root* mRoot;
      Ogre::RenderWindow* mRenderWnd;
      Ogre::Viewport* mViewport;
      Ogre::Log* mLog;
      Ogre::Timer* mTimer;
  
      //OIS
      OIS::InputManager* mInputMgr;
      OIS::Keyboard* mKeyboard;
      OIS::Mouse* mMouse;
  private:
      OgreFramework(const OgreFramework&amp;);
      OgreFramework&amp; operator= (const OgreFramework&amp;);
  };
  
  #endif
  </code></pre>