64位应用程序上的Windows HANDLE的范围是多少?
在WinAPI上,HANDLE类型定义为void *,因此在64位应用程序上,HANDLE值的范围可以为0到18446744073709551615。
但实际上是真的吗?任何文件是否指定了这样一个手柄的整体范围? 如果一个人希望将这个HANDLE存储在一个32位应用程序上的一个int32_t,这是完全正常的,但是在64位应用程序上,这个疑问就是这样。
MSDN声明:
也值得注意的是在该页面上添加了此评论:
请注意“句号扩展”句柄与“零延伸”句柄之间的区别。 编辑:从对这个问题的删除答案中的讨论来看,我认为扩展一个32位句柄来达到64位句柄而不是零扩展的意义在于保留对INVALID_HANDLE_VALUE的适当处理一个句柄的值。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa384203%28v=vs.85%29.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |