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

时间:2009-06-11 17:54:08

标签: .net windows

我们有一个Microsoft.Win32命名空间,但它是否可以在64位Windows环境中运行?是否有同等需要为64位情况定义这样的定义?

3 个答案:

答案 0 :(得分:13)

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

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

简而言之:如果您运行的是32位或64位Windows,那么无关紧要,因为.NET框架将其从C#/ VB代码中抽象出来。

Microsoft.Win32框架是指Windows内部的本机API。除了微软给出的非常糟糕的名字之外,它与32位与64位Windows无关。

顺便提一下,对于64位版本的框架,有些事情是无法做到的:例如,64位框架中没有JET数据库驱动程序。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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