代码之家  ›  专栏  ›  技术社区  ›  rasx

为什么没有Microsoft.Win64命名空间?

  •  6
  • rasx  · 技术社区  · 17 年前

    我们有一个microsoft.win32名称空间,但它能保证在64位Windows环境中工作吗?对于64位的情况,是否需要有这样的定义?

    3 回复  |  直到 17 年前
        1
  •  13
  •   rein    17 年前

    .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数据库驱动程序。

        2
  •  1
  •   Ana Betts    17 年前

    “win32”是平台的名称(即核心API集),与操作系统的实际位无关。换言之,别担心:)

        3
  •  0
  •   Mehrdad Afshari    17 年前

    出于同样的原因,我们在 system32 64位窗口中的文件夹。

    基本上,这是因为 Microsoft.Win32 不特定于32位窗口。为什么它们会损害可移植性而没有任何好处?