我有一个旧的16位应用程序,它是为Windows 3.1开发的。它预先形成一些计算,是更复杂系统的一部分。系统设置程序的输入,并收集输出结果。
不幸的是,16位程序在这里停留的时间很长,所以我们必须解决它在现代操作系统上造成的挫折。
系统在Windows XP上运行,在物理Windows XP机器上运行正常。我遇到问题的机器是在Debian盒子上运行在VirtualBox(版本4.1.12)上的Windows XP实例。物理计算机是HP Proliant服务器,具有Quad Core Xeon 3.4 Ghz。我正在使用远程桌面从Windows 7机箱访问计算机。
我得到的错误是“PROGRAM在地址:0001:02C9的WIN87EM.DLL中导致一般保护错误”。令人讨厌的是,它有时会起作用,有时却不起作用,使故障排除更令人沮丧。
通过浏览互联网,我遇到了一些提到相同问题的网站。他们似乎都没有提供真正的解决方案,除了说WIN87EM.DLL提供浮点例程,并且某些打印机存在一些问题。
我已经卸载了虚拟机上的所有打印机,我还尝试安装PDF编写器并将其设置为默认打印机 - 这样机器上就有一台打印机。我已通过远程桌面连接禁用了资源共享。我已在计算机上更新了虚拟机来宾驱动程序。我还尝试在可执行文件的属性中设置与Windows 95的兼容性。
有关解决此问题的任何指示,或者我可以尝试使其正常工作的方法吗?
答案 0 :(得分:1)
这与我使用Microsoft XP Mode时出现的错误相同。 显然WIN87EM.DLL存在虚拟化处理器问题。 我的解决方案:我在注册表中“卸载”了XP版本的WIN87EM.DLL(使用此名称搜索并删除每个项目),并将更旧的版本复制到应用程序文件夹中。可以找到她的旧版本:http://support.microsoft.com/kb/86869/de 祝好运!
答案 1 :(得分:1)
视频驱动程序win87em.dll
这是解决我们遇到的“win87em.dll”问题的一步一步解决方法。
这仅适用于Windows XP上的用户。列出的显示适配器很可能会显示为Intel G41内部显示适配器,但它可能是另一个Intel设备。如果这不能解决问题,则可能是导致问题的打印机驱动程序错误。
禁用视频适配器不会损害Windows。这将使他们的计算机无法观看视频或玩3D游戏,但Windows仍将运行并且看起来很好。 (他们可能需要在重新启动后更改屏幕分辨率。)
答案 2 :(得分:1)
VirtualBox 4.3.16也应该有一个修复。请参阅https://www.virtualbox.org/ticket/12646如果您想立即修复,则必须从OSE源构建VirtualBox。
更新:包含此修复程序的VirtualBox 4.3.16现已正式发布。
答案 3 :(得分:1)
这个问题已经过时了,但我在Windows 7上运行原生的一些16位工厂自动化软件时,确实遇到了win87em.dll崩溃。按照HIDE87.com的方法编辑autoexec.nt我能够使软件停止崩溃,以便我可以进行编辑。
该机器运行的是Intel 8系列/ C220系列芯片。我把这个配置归因于崩溃,因为我已经在很多其他Windows 7机器上使用了这个相同的16位软件多年了。
编辑:这是我用来解决问题的步骤
lh%SystemRoot%\ system32 \ HIDE87.com
REM修复win87em.dll中的Gen.保护错误
答案 4 :(得分:0)
我知道这是一个旧线程,但我在搜索时遇到了它,因为我在运行VirtualBox的Windows XP下遇到了同样的问题。最终我发现了以下内容:
https://communities.vmware.com/people/jmattson/blog/2012/03
这是针对VMWare的,似乎已经修复了这个问题,找不到类似VirtualBox的东西,但由于VMWare Player是免费的,对于遇到此问题的人来说这是一个很好的解决方法。
答案 5 :(得分:0)
在虚拟机的情况下 - VM软件的vxBOX(已测试)(可能) 您只需关闭VX BOX选项的处理器部分中的所有para虚拟化选项。 像魔术一样工作!