Windows Win32API是否与32位版本和64位版本不同?
似乎所有Win32 API都是32位版本,无论我安装的Windows是32位还是64位。如果调用Windows Win32API是否与32位版本和64位版本不同?,windows,api,resources,64-bit,handle,Windows,Api,Resources,64 Bit,Handle,似乎所有Win32 API都是32位版本,无论我安装的Windows是32位还是64位。如果调用CreateWindow,返回的句柄将是指向\u句柄的指针,该句柄是结构{int unused;} 所以32位Windows和64位Windows都使用Windows API,它以32位样式管理资源,对吗 如果是这种情况,那么进程的文件/GUI句柄的上限数量在32/64位窗口之间是否相同?换句话说,与32位进程相比,64位Windows进程除了拥有更多内存外,还不能容纳更多的系统资源 似乎所有win3
CreateWindow
,返回的句柄将是指向\u句柄的指针,该句柄是结构{int unused;}
所以32位Windows和64位Windows都使用Windows API,它以32位样式管理资源,对吗
如果是这种情况,那么进程的文件/GUI句柄的上限数量在32/64位窗口之间是否相同?换句话说,与32位进程相比,64位Windows进程除了拥有更多内存外,还不能容纳更多的系统资源
似乎所有win32 api都是32位版本,无论我安装的windows是32位还是64位
这是不正确的,您提供的示例(句柄
)也显示了这一点:它是一个指针,因此在64位版本的Windows上它是64位宽的。它指向某个任意结构1(struct{int unused;};
)的事实与此无关。未使用结构内容2
这样,您就可以看到,句柄
类型引用的内核对象的理论最大值在64位窗口上高于32位窗口上。由于许多原因,实际限制通常低于这些限制。太多了,无法一一列举,但下面是一些你可能会感兴趣的相关文章:
1仅当设置了预处理器宏时,才使用此结构。如果不是,则句柄
只是void*
的typedef
2该结构用于防止某些类别的程序员错误,如将句柄
分配给int
。在系统内部,有意义的是句柄值
似乎所有win32 api都是32位版本,无论我安装的windows是32位还是64位
这是不正确的,您提供的示例(句柄
)也显示了这一点:它是一个指针,因此在64位版本的Windows上它是64位宽的。它指向某个任意结构1(struct{int unused;};
)的事实与此无关。未使用结构内容2
这样,您就可以看到,句柄
类型引用的内核对象的理论最大值在64位窗口上高于32位窗口上。由于许多原因,实际限制通常低于这些限制。太多了,无法一一列举,但下面是一些你可能会感兴趣的相关文章:
1仅当设置了预处理器宏时,才使用此结构。如果不是,则句柄
只是void*
的typedef
2该结构用于防止某些类别的程序员错误,如将句柄
分配给int
。在系统内部,有意义的是句柄值