Visual Studio无法识别Windows'数据类型甚至包括其标题

时间:2016-06-22 12:52:11

标签: c++ windows visual-studio-2013

我使用某些Windows功能在VS2013中编写Timer类,但Visual Studio甚至不识别它们,包括windows.h标题。

Win32Timer.h

#pragma once

#include "Timer.h"

    #ifndef WIN32_LEAN_AND_MEAN
    #   define WIN32_LEAN_AND_MEAN
    #endif
    #if !defined(NOMINMAX) && defined(_MSC_VER)
    #   define NOMINMAX
    #endif
    #include <windows.h>

    class Win32Timer : public Timer {
        public:
            Win32Timer();
            ~Win32Timer();

            void reset() override;
            ulong getMilliseconds() override;
            ulong getMillisecondsCPU() override;
            ulong getMicroseconds() override;
            ulong getMicrosecondsCPU() override;

        protected:
            ulong getTime() override;

        private:
            clock_t m_StartClock;

            DWORD m_StartTick;
            LONGLONG m_LastTime;
            LARGE_INTEGER m_StartTime;
            LARGE_INTEGER m_Frequency;

    };

Timer.h(Prerequisites.h只是一堆前向声明和STL标题)

#pragma once

#include "Prerequisites.h"

class Timer {
    public:
        Timer();
        ~Timer();

        virtual void reset() = 0;
        virtual ulong getMilliseconds() = 0;
        virtual ulong getMillisecondsCPU() = 0;
        virtual ulong getMicroseconds() = 0;
        virtual ulong getMicrosecondsCPU() = 0;

    protected:
        virtual ulong getTime();
};

当我尝试编译时,我会为使用windows&#39;的每个成员变量获得以下错误:数据类型。

  

1&gt; c:\ users \ jean \ documents \ visual studio 2013 \ projects \ drac \ drac \ win32timer.h(33):错误C2146:语法错误:缺少&#39 ;;&#39;在标识符'm_LastTime&#39;

之前      

1&gt; c:\ users \ jean \ documents \ visual studio 2013 \ projects \ drac \ drac \ win32timer.h(33):错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int

如果我点击进入定义,VS会将我带到定义数据类型的正确位置,但无法在编译时识别它。问题是什么?

如果我包含<winnt.h>而不是<windows.h>,则会识别出类型,但我会收到fatal error C1189: #error : "No Target Architecture"

0 个答案:

没有答案