对于练习,我看一下STARTUPINFO
结构。如您所见,最后3个元素的类型为HANDLE
。
所以我想知道哪种尺寸HANDLE
。有人知道HANDLE
吗?
WindowsHANDLE
类型不是完全不透明的类型。Windows定义了几个可以依赖的属性。主要问题是您所提出问题的答案:始终为type void *
。从MSDN上的Windows数据类型条目中:
处理
对象的句柄。
在WinNT.h中声明此类型,如下所示:
typedef PVOID HANDLE;
在表格的后面,您可以看到PVOID
定义为void *
。
因此,aHANDLE
的大小与相同void *
。换句话说,使用32位编译器时为32位,使用64位编译器时为64位。您无需将这些值中的任何一个硬编码到代码中,而只需使用即可sizeof(HANDLE)
。
WindowsHANDLE
类型的另一个属性非常模糊,几乎没有记录:对于内核句柄,最低的两位始终为零。您不需要在代码中依赖它,希望您可以看到自己永远也不想。我之所以提及此点是为了完整性,并强调Microsoft如何定义HANDLE
为不仅仅是内部实现细节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句