为什么Windows 7 64位不能运行32位程序?


9

据我了解,该体系结构没有从16位更改为32位,因此为什么我们需要XP模式之类的东西才能在Windows 7 64位中运行32位应用程序?

还是我理解错了?


我们有一个非常不喜欢的程序。最终的实际问题归结为64位Office(我们有一个Office插件)。
约书亚

Answers:


16

它可以运行32位程序。它不能运行16位程序。

XP模式是有保障的-如果特定软件无法在7上运行(32或64位-xp模式可用于专业版,并且两种版本均可),则可以在XP模式下运行。这还没有发生在我身上,但是可能是因为“您可以从垂死的手中获取XP”。

在大多数情况下,兼容模式会


ang!我在运行某些应用程序(如Visual Studio 6,Guitar Pro等)时遇到了麻烦,所有的搜索都使我赢得了XP模式,却没有真正说出原因。万分感谢!
奥斯卡

2
某些应用程序会抱怨,但是从理论上讲,没有理由不能运行32位应用程序。
井2011年

@Oscar VS6需要MS Java。
kinokijuf 2012年

5

我希望这可以为不兼容提供一些启示:

微软决定加强使用64位版本的内核。设备驱动程序对硬件的访问级别与内核相同,因此以安全性名义在64位版本中进行了更改的一些特定事项包括:

  • 驱动程序必须由Microsoft签名才能加载。
  • 我不知道技术上32位驱动程序是否可以与64位内核一起使用(不太可能),但是Microsoft并未使用64位内核所需的密钥对新的32位驱动程序进行签名。因此,所有现有的XP 32位驱动程序都无法在64位Vista / 7上运行。
  • 驱动程序无法覆盖或修补内核。

微软还切换到了新的视频显示驱动程序模型(LDDM),但确实保留了旧的模型。旧型号XDDM不支持Aero。

有些程序会动态加载自定义的设备驱动程序以完成其任务。这些绝对不会在Vista / 7上运行。

Microsoft更新了Vista / 7中的许多组件。这可能意味着这些组件的未记录行为发生了变化。依赖这些组件中的错误或未记录的DLL函数的程序也会有问题。


+1了解32位和64位Windows驱动程序。我有一些旧的音频硬件(SW1000XG,UR-80),它们只能在Windows 7的32位安装上运行,而在64位的安装上不能运行。真可惜,因为它们是不错的经典套件。
therobyouknow 2011年

“我不知道从技术上讲32位驱动程序是否可以与64位内核一起工作(不太可能)”。通常,在操作系统中这并非不可能,但是在Windows中做到这一点将要求所有驱动程序都与驱动程序模型保持一致,并且与各种操作系统内部细节的隔离要严格得多。我看不到如何使用Windows驱动程序模型或WDM之前的驱动程序来完成。WDF会更容易,但仍不是灌篮。
杰米·汉拉汉

2

32位程序应该可以在64位Windows下正常运行。

XP模式适用于与Windows Vista和Windows 7都不兼容的程序。

有关更多信息,请参见Ars Technica这篇文章

随着Windows Vista的发布,这个问题真的到了。Vista与XP的兼容性非常好,但并不完美。微软在Vista上做了很多工作,以使其免受攻击(当然是UAC,还有其他事情,例如禁止服务与用户进行交互),以及这些修改和改进,以及诸如更新版本号之类的平凡事物。 Windows已经密谋破坏某些旧软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.