我们有一个Microsoft.Win32命名空间,但它是否可以在64位Windows环境中运行?是否有同等需要为64位情况定义这样的定义?
答案 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。为什么它们会在没有任何好处的情况下损害可移植性?