代码之家  ›  专栏  ›  技术社区  ›  user9876

如何使用ifdef检测是否支持Windows DWORD\u PTR类型?

  •  3
  • user9876  · 技术社区  · 16 年前

    some new integer types they aren't present in MSVC6 .

    #if 条件来检测这些类型是否受 <windows.h> ?

    (我的代码需要在微软Visual C++的许多不同版本中编译,包括MSVC6。所以我需要用一个 在较新的编译器中禁用它们)。

    2 回复  |  直到 8 年前
        1
  •  5
  •   MSN    16 年前

    MSC_VER 是范围内的值 [1200, 1300) 对于MSVC 6 #if MSC_VER>=1200 && MSC_VER<1300 .

    编辑:正如Anders所说,这对于“is my compiler MSVC 6”之外的测试来说并不是真正有效的。但是,您也可以使用:

    #if defined(MAXULONG_PTR)
    

    DWORD_PTR 是值类型,在中为其定义了最大值 basetsd.h

        2
  •  4
  •   Michael Burr    16 年前

    GetWindowLongPtr :

    #if !defined( GetWindowLongPtr)
    typedef DWORD DWORD_PTR;
    #endif
    

    推荐文章