第一个 Windows 系统使用基于 16 位 MS-DOS 的内核来运行图形外壳以访问系统服务。如果最后一句话让您争先恐后地寻找技术词汇表,请放心。专家和外行都可以访问本文中的信息。在 64 位版本的 Windows 中运行 32 位应用程序时,您可能会遇到一些问题。如果是这样,请继续阅读以了解发生这种情况的原因以及如何解决。
一些必要的概念
一个简单的事实是,您一开始就不应该遇到这个问题。 Windows 有一个模拟器——如果它工作正常——为 64 位和 32 位应用程序正常运行提供必要的环境。此模拟器 (WOW64) 将 32 位应用程序与 64 位应用程序隔离,以防止文件和/或注册表冲突。根据技术说明,32 位进程无法执行 64 位 DLL,因此这可能会导致您的问题。
需要记住的是,您实际上可能正在运行一个 16 位应用程序,这肯定不会工作。检查程序是否为 16 位的快速方法是导航到其在计算机上的位置。右键单击它并从下拉菜单中选择属性。如果属性选项卡有“版本”或“以前的版本”选项卡,则它不是 16 位应用程序。
使其兼容
当您开始运行任何存在兼容性问题的软件时,您应该尝试的第一件事是在兼容模式下运行它。现在很少有问题可以实际解决,但是当 Windows 95 被 NT 取代时,这是一个非常有用的功能。
要在兼容模式下运行应用程序,请在文件资源管理器中导航到它并右键单击它。与上述相同,从菜单中单击“属性”。在属性下,单击兼容性选项卡。单击“以兼容模式运行此程序:”框,然后选择要使用的 Windows 版本。然后,单击应用并尝试运行您的应用程序。应该只有少数选项,因此请尝试全部完成。
启用 32 位应用程序
为了彻底,您可以确保在您的 Windows 服务中启用了 32 位应用程序。为此,请按照下列步骤操作:
- 首先通过在 Windows 搜索框中键入“windows features”并选择最佳匹配来访问 Windows 功能。
- 选中读取 Internet 信息服务的框,然后单击确定。安装此功能需要一分钟
- 通过在 Windows 搜索框中键入“互联网信息服务”并选择最佳匹配来启动 IIS 管理器。
- 您将在左侧窗口中看到您的计算机名称,将其展开并单击应用程序池。
- 在右侧窗口中,右键单击 DefaultAppPools 并选择高级设置。
- 选择“启用 32 位应用程序”并将其从 False 更改为 True。
- 单击“确定”并重新启动计算机。
完成此操作后,请尝试再次运行该应用程序。如果您的 WOW64 工作正常,这应该不是必需的,但它已被证明在某些情况下是有效的。
不正确的程序文件
较旧的程序有时会混淆安装,并且它们的文件最终可能会出现在错误的文件夹中。这特别难以检测,因为安装似乎顺利进行。
在 64 位版本的 Windows 上,所有 64 位应用程序都安装在“Program Files (x86)”文件夹中。这包括与安装的应用程序相关的任何文件。但是,32 位程序最终位于名为“Program Files”的单独文件夹中。如果安装中的路径编码不正确,则应用程序可能安装在错误的文件夹中。
修复此问题应包括编辑一些安装代码,但您不必这样做,而且您可能无法访问源代码。对于临时解决方案,只需找到已安装的文件并将它们手动复制到“Program Files”文件夹中。
刮胡子和理发,两个位
这些只是您在运行 32 位应用程序时可能面临的一些问题。但是,再强调一次,这种情况永远不应该发生,因为已经采取了措施来防止它发生。您处理其他兼容性问题的可能性要大得多。如果您非常确信寄存器会导致问题,请从文章中概述的解决方案开始。
文章中的任何方法有帮助吗?是什么让您确定 32 位寄存器确实是导致您出现问题的原因?在下面的评论中分享您的推理。