【发布时间】:2011-11-20 13:35:59
【问题描述】:
如果我是正确的,Win32 正在适应或已经适应 64 位窗口,例如,64 位上的 GetWindowLongPtr 而不是 32 位上的 GetWindowLong。是否会有 Win64 Api,如果有,是否有任何迹象表明何时会发生转换?
我对这个问题不是很了解,所以如果我有任何明显的错误,我深表歉意。在此先感谢,呃。
【问题讨论】:
标签: windows winapi 64-bit 32bit-64bit
如果我是正确的,Win32 正在适应或已经适应 64 位窗口,例如,64 位上的 GetWindowLongPtr 而不是 32 位上的 GetWindowLong。是否会有 Win64 Api,如果有,是否有任何迹象表明何时会发生转换?
我对这个问题不是很了解,所以如果我有任何明显的错误,我深表歉意。在此先感谢,呃。
【问题讨论】:
标签: windows winapi 64-bit 32bit-64bit
这种转变发生在世纪之交。使用64位版本Win32的64位版本的Windows已经使用了很长时间了。
但是,64 位版本的 Win32 仍然被称为 Win32,因为它本质上是一个相同的接口,唯一的主要区别是不同大小的指针。
【讨论】:
刚刚宣布的新 Windows API 称为 WinRT。更多信息,我推荐观看BUILD的主题演讲。
【讨论】:
x64 中的 win32 东西(“Win32 API”)实际上是 64 位直通代码(* 请参见 cmets)。
实际的 32 位代码(在 64 位窗口中)在包含文件系统和注册表的 WoW64 子系统下运行。虽然这可能看起来“草率”,但它实际上很有意义,因为可以为 x32 和 x64 编译程序而无需更改名称(只要使用了正确的与版本无关的代码)——也就是说,核心界面和“windows 如何工作”是一个相当稳定的目标。
编码愉快。
【讨论】:
Windows API 因假定已知值sizeof(void *) 并将其粘贴在一些被认为具有相同大小的整数类型的字段中的习惯而遭受了极大的损失。即使在Windows MSG structure 中,wParam 之所以如此命名,是因为它最初是一个 WORD 或无符号 16 位值,而 lParam 是一个 LONG 或有符号 32 位值。也许这是C Programmers' Disease的另一个症状。
【讨论】: