所以32位窗口和64位窗口都使用windows api来管理32位样式的资源,对吗?
如果是这种情况,那么进程的文件/ gui句柄的上限数量在32 / 64bit窗口之间是否相同?换句话说,除了拥有更多内存外,与32位进程相比,64位Windows进程无法容纳更多系统资源?
感谢。
答案 0 :(得分:2)
似乎所有win32 api都是32位版本,不管我安装的Windows是32位还是64位。
这不正确,您提供的示例(HANDLE
)也显示了这一点:它是指针,因此在64位版本的Windows上它是64位宽。它指向一些任意结构 1 (struct { int unused; };
)的事实是不相关的。结构内容不使用 2 。
通过这种方式,您可以看到,HANDLE
类型引用的内核对象的理论最大值在64位Windows上高于在32位Windows上。由于许多原因,实际限制通常低于那些限制。要列出所有内容太多,但这里有一些您可能感兴趣的相关文章的汇编:
<小时/> 1 仅在设置STRICT预处理器宏时才使用此结构。如果不是,则
HANDLE
只是void*
的typedef。 HANDLE
分配给int
。在系统内部,它是有意义的句柄值。