【问题标题】:Why is there no Microsoft.Win64 Namespace?为什么没有 Microsoft.Win64 命名空间?
【发布时间】:2009-06-12 03:41:49
【问题描述】:

我们有一个 Microsoft.Win32 命名空间,但它可以保证在 64 位 Windows 环境中工作吗?对于 64 位情况,是否有类似的定义?

【问题讨论】:

    标签: .net windows


    【解决方案1】:

    .NET 应用程序默认运行在以操作系统架构为目标的框架上。因此,如果您运行的是 32 位 Windows,则安装在计算机上的 .NET 框架将是 32 位框架。然后,在此框架上运行的所有 .NET 应用程序都将以“32 位”运行。

    如果您运行的是 64 位 Windows,那么您运行的是 64 位框架,但在框架之上运行的 IL(默认情况下)与 32 位 IL 没有区别。

    简而言之:运行 32 位还是 64 位 Windows 并不重要,因为 .NET 框架将其从 C#/VB 代码中抽象出来。

    Microsoft.Win32 框架指的是 Windows 内部的本机 API。除了微软给它的真正坏名字之外,它与 32 位和 64 位 Windows 无关。

    顺便说一句,有些事情你不能用 64 位版本的框架来做:例如,64 位框架中没有 JET 数据库驱动程序。

    【讨论】:

    • 很好的答案!有没有人跟踪 .NET 中的 64 位差异? ---也许是一个博客?
    • 我没见过。我也会对此感兴趣。
    【解决方案2】:

    “Win32”是平台的名称(即核心 API 集),与操作系统的实际位数无关。换句话说,别担心:)

    【讨论】:

      【解决方案3】:

      出于同样的原因,我们将 64 位二进制文​​件存储在 64 位 Windows 的 system32 文件夹中。

      基本上,这是因为Microsoft.Win32 中的内容并非特定于 32 位 Windows。为什么它们会损害可移植性而没有任何好处?

      【讨论】:

        猜你喜欢
        • 2023-03-06
        • 2014-02-25
        • 2017-05-05
        • 2017-09-20
        • 1970-01-01
        • 1970-01-01
        • 2015-09-24
        • 1970-01-01
        • 2014-10-18
        相关资源
        最近更新 更多