gpt4 book ai didi

c++ - 如何使用 ifdef 检测是否支持 Windows DWORD_PTR 类型?

转载 作者:可可西里 更新时间:2023-11-01 14:42:16 26 4
gpt4 key购买 nike

some new integer types在 Windows API 中支持 Win64。他们并不总是得到支持;例如they aren't present in MSVC6 .

我怎样才能写一个 #if <windows.h> 是否支持这些类型的检测条件?

(我的代码需要在许多不同版本的 Microsoft Visual C++ 下编译,包括 MSVC6。因此我需要提供我自己对这些类型的定义,并带有 #if 以在较新的编译器中禁用它们)。

(对于搜索者,完整的类型列表是:DWORD_PTR、INT_PTR、LONG_PTR、UINT_PTR、ULONG_PTR)

最佳答案

MSC_VER是在 [1200, 1300) 范围内的值对于 MSVC 6。所以你可以使用 #if MSC_VER>=1200 && MSC_VER<1300 .

编辑:正如安德斯所说,除了“是我的编译器 MSVC 6”之外,这并不是真正有效的测试。但是,您也可以使用:

#if defined(MAXULONG_PTR)

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

关于c++ - 如何使用 ifdef 检测是否支持 Windows DWORD_PTR 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com