2010-11-19 58 views
1

这是我的场景:我工作的公司将应用程序部署到32位Windows 2003服务器,并且他们希望移到64位的Windows 2008 Server。已经注意到,这些32位定制开发的应用程序不能在64位机器上运行。我没有意识到这一点。win32位应用程序是否会在64位服务器上运行?

我一直认为32位软件可以在64位操作系统上运行,只需使用32位地址。另一个64位软件无法在32位操作系统上运行。在64位上,必须创建64位软件,但是仍然可以创建专为32位机器设计的软件。

有人可以详细说明吗?

回答

3

通常,32位应用程序将在64位Windows(这在技术上称为WOW64-Windows Windows)下运行。这适用于迄今为止所有64位Windows版本,包括服务器。

WOW64进程在* 32的任务管理器中标记,例如:chrome.exe * 32。 Sysinternals的Process Explorer有一个单独的列:Image Type(64 vs 32位)。

如果应用程式托管的其他进程内的组件,然后这些组件必须适应他们的托管过程的例子:

  • 外壳扩展在Explorer.exe的托管,其位数的OS”位数匹配。因此,您应该编译32位和64位的扩展名,并在安装过程中注册与操作系统比特位相匹配的扩展名。
  • 内核模式驱动程序驻留在内核中,其位数也与操作系统的位数相匹配。所以,上述适用。
  • Winsock LSP(分层服务提供程序)托管在所有进程中,包括64位(本机)和32位(WOW64)。因此,您应该编译32位和64位的LSP,并在安装期间在其各自的目录中注册。

还有一些关于文件重定向(System32/SysWOW64/SysNative)和注册表重定向(Wow6432Node)的注意事项,我不会介绍。

+0

非常感谢! – user118190 2012-04-09 23:22:11

3

通常,32位应用程序将在64位操作系统下运行。如果您的应用程序依赖于32位内核驱动程序(例如,VPN客户端),那么您将不得不移植到64位。

+0

这应该与警告(尽管它们可能在2012年比2010年更相关!)。一般来说,*大多数* 64位操作系统都具有兼容性功能,可以让它们运行32位应用程序。这并非总是如此,特别是在Linux安装中,这些兼容性部分是默认情况下未安装的可选软件包正变得越来越普遍。 – 2012-12-23 05:40:51

相关问题