【发布时间】:2009-06-12 03:41:49
【问题描述】:
我们有一个 Microsoft.Win32 命名空间,但它可以保证在 64 位 Windows 环境中工作吗?对于 64 位情况,是否有类似的定义?
【问题讨论】:
我们有一个 Microsoft.Win32 命名空间,但它可以保证在 64 位 Windows 环境中工作吗?对于 64 位情况,是否有类似的定义?
【问题讨论】:
.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 数据库驱动程序。
【讨论】:
“Win32”是平台的名称(即核心 API 集),与操作系统的实际位数无关。换句话说,别担心:)
【讨论】:
出于同样的原因,我们将 64 位二进制文件存储在 64 位 Windows 的 system32 文件夹中。
基本上,这是因为Microsoft.Win32 中的内容并非特定于 32 位 Windows。为什么它们会损害可移植性而没有任何好处?
【讨论】: