【问题标题】:Will there be a Win64 API? [closed]会有 Win64 API 吗? [关闭]
【发布时间】:2011-11-20 13:35:59
【问题描述】:

如果我是正确的,Win32 正在适应或已经适应 64 位窗口,例如,64 位上的 GetWindowLongPtr 而不是 32 位上的 GetWindowLong。是否会有 Win64 Api,如果有,是否有任何迹象表明何时会发生转换?

我对这个问题不是很了解,所以如果我有任何明显的错误,我深表歉意。在此先感谢,呃。

【问题讨论】:

    标签: windows winapi 64-bit 32bit-64bit


    【解决方案1】:

    这种转变发生在世纪之交。使用64位版本Win32的64位版本的Windows已经使用了很长时间了。

    但是,64 位版本的 Win32 仍然被称为 Win32,因为它本质上是一个相同的接口,唯一的主要区别是不同大小的指针。

    【讨论】:

    • 我想知道“Win32 的 64 位版本仍称为 Win32”是否有官方来源/引用。似乎微软实际上希望我们将 64 位版本的 Windows API 称为“Win64”,根据此参考:technet.microsoft.com/en-us/library/bb496995.aspx
    • @David 为什么不说win64?
    【解决方案2】:

    刚刚宣布的新 Windows API 称为 WinRT。更多信息,我推荐观看BUILD的主题演讲。

    【讨论】:

    • 我不认为这回答了这个问题。 64 位 Windows API 已存在多年。
    • @David:它解决了未来的 Windows API,并展示了微软对 Windows API 的总体看法。 OP 已经展示了当前 API 如何适用于 Windows 以支持 64 位平台。这显示了最新的、未来的 Windows API 的总体发展方向......
    • WinRT 确实很有趣,但感觉与被问到的问题不同。也许我看错了,但我觉得 Ell 觉得向 64 位 Windows API 的过渡只是部分完成。
    【解决方案3】:

    x64 中的 win32 东西(“Win32 API”)实际上是 64 位直通代码(* 请参见 cmets)。

    实际的 32 位代码(在 64 位窗口中)在包含文件系统和注册表的 WoW64 子系统下运行。虽然这可能看起来“草率”,但它实际上很有意义,因为可以为 x32 和 x64 编译程序而无需更改名称(只要使用了正确的与版本无关的代码)——也就是说,核心界面和“windows 如何工作”是一个相当稳定的目标。

    编码愉快。

    【讨论】:

    • 这不是真的。许多 Win32 代码在 WoW64 模拟器下作为 32 位代码运行。例如,考虑 kernel32、user32、comctl32 等中的代码。这都是 WoW64 和 64 下但 x64 下的所有 32 位代码。操作系统的内核 (ntoskrnl) 是纯 64 位的。但这不是 Win32。
    【解决方案4】:

    Windows API 因假定已知值sizeof(void *) 并将其粘贴在一些被认为具有相同大小的整数类型的字段中的习惯而遭受了极大的损失。即使在Windows MSG structure 中,wParam 之所以如此命名,是因为它最初是一个 WORD 或无符号 16 位值,而 lParam 是一个 LONG 或有符号 32 位值。也许这是C Programmers' Disease的另一个症状。

    【讨论】:

      猜你喜欢
      • 2019-04-28
      • 2013-01-06
      • 2012-10-07
      • 2010-09-17
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2011-01-17
      相关资源
      最近更新 更多