【发布时间】:2013-08-18 11:10:00
【问题描述】:
在 WinAPI 上,HANDLE 类型定义为 void*,因此在 64 位应用程序上,HANDLE 值的范围可以从 0 到 18446744073709551615。
但在实践中真的如此吗?是否有任何文档指定此类HANDLE 的整数范围?
例如,如果有人想将此HANDLE 作为int32_t 存储在 32 位应用程序上,这完全没问题,但在 64 位应用程序上,疑虑仍然存在。
【问题讨论】:
-
为什么您需要将
HANDLE存储在int中?听起来有问题。考虑std::map<int, HANDLE>。 -
@MSalters 这与 POSIX 文件描述符(即
int)有关。我使用的是 C,所以没有 STL,但是是的,我可以创建第二个句柄系统,指向 WindowsHANDLE,但这会比简单的转换要慢,所以我在这里问。
标签: windows winapi 64-bit handle