【问题标题】:Why is everything named win32?为什么所有东西都命名为win32?
【发布时间】:2018-01-08 06:27:48
【问题描述】:

涉及到Windows操作系统,很多东西都使用32这个数字,尤其是Win32。我在系统文件夹的所有内容中都看到了它:

C:\Windows\System32\

到系统文件:

C:\Windows\System32\win32k.sys

到 Windows 应用程序开发:

开发一个 Win32 应用程序

数字 32 和计算机的意义让我想到了 32 位处理器,但是,如果这是正确的,为什么需要明确提及 32 位系统?

谷歌搜索把我带到了 Win32 API。我认为这是它频繁使用的主要原因,但这并没有改变我的问题。 Windows 操作系统在 64 位系统上运行良好。

Windows 是否专门用于 32 位系统?

或者这只是一个历史事件(即 Windows 及其 API 是在 64 位系统出现之前开发的)?

【问题讨论】:

  • @smarx 略过这一点,Win32 随处可见,因为在 32 位上工作的所有东西都在 64 位上工作,反之亦然?
  • @eryksun:API 仍然通常称为 "Win32",以区别于 16 位 API ("Win16 ")。 "Win32" 的引入是对 Windows API 的最后一次重大更改,无论目标体系结构如何,它都称为 "Win32"。 SDK 标头使用_WIN32 来选择API。另一方面,_WIN64 用于目标架构。对于 64 位版本,_WIN64_WIN32 均已定义。
  • @IInspectable,好吧,API 的主要参考资料说“以前称为 Win32 API”,这在其他地方也有类似之处,例如 Introduction to Win32/Win64。显然,有许多文档使用“Win32”作为 API 名称,而不是区分 Win16、Win32 和 Win64 的限定词——再加上始终坚持将其称为 Win32 的开发人员和技术作家的文化传统。我不争论事实上的名字。但随着时间的推移,预计会出现使用“Windows API”或“WinAPI”的转变,而不再使用“Win32 API”。
  • "System32" 重命名为 "System" 将是一种疯狂的风险,会导致不合理的成本,几乎没有任何好处。像这样的直接举动会破坏如此多的软件,微软当然不会考虑。 @eryksun:除此之外,没有专用的 64 位 API。有Win16和Win32。此外,“转向使用 'Windows API'” 已经进行了十多年。虽然我最初关心自己,但我不再关心了,因为这种转变不会发生。

标签: windows winapi filenames


【解决方案1】:

在 Win32 之前有 Win16(虽然可能没有使用这个名称),运行 32 位代码是一项特殊功能或有特殊要求,尤其是您的 CPU 必须能够这样做。

  • Intel 8086 是具有 20 位地址空间的 16 位 CPU。
  • Intel 80286 是具有 24 位地址空间的 16 位 CPU。
  • Intel 80386 是完整的 32 位,包括寄存器和地址空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 2023-03-14
    • 1970-01-01
    • 2019-11-23
    • 2019-08-17
    相关资源
    最近更新 更多