use*_*876 3 c c++ windows win64 visual-c++
Windows API中有一些新的整数类型支持Win64.他们并不总是受到支持; 例如,它们不存在于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)
Run Code Online (Sandbox Code Playgroud)
由于DWORD_PTR
是值类型,因此它具有为其定义的最大值basetsd.h
.
归档时间: |
|
查看次数: |
1691 次 |
最近记录: |