我已经使用 Microsoft Publisher 97 12 年了,从来没有遇到过问题。现在,突然间,我收到一条错误消息: ASSERT: File undialog.cpp line 1396
。这是什么意思?我该如何修复它?我尝试过卸载软件、运行目录清理并重新安装。我仍然收到错误消息。Microsoft 不为 Publisher 97 提供客户支持。(虽然他们应该提供,但这似乎是他们的问题)。
谢谢唐
答案1
如果你使用 Sprint DSL 或其他使用执行程序作为其进程的一部分,那么这不是 Microsoft 错误。这意味着该软件损坏了重要的系统模块。一般来说,如果 DLL 较新,Microsoft 安装程序不会覆盖它们,因此重新安装 Publisher 不会解决您的问题。
但这类错误绝不会“突然”发生。在发生此错误之前,您是否进行了 Windows 更新或安装了其他软件?即使安装一个简单的游戏也可能导致此问题。尤其是在较旧的系统和较旧的软件中,看似完全不相关的事物的微小变化可能会导致此类问题。
顺便说一句,请不要告诉我您仍在使用 Windows 98... :-)
答案2
这意味着该文件的某一行存在编码错误。如果您有汇编语言调试经验,您可以尝试找到错误。否则,我建议您获取更新版本的 MS Publisher。
答案3
该消息表示断言失败。断言是一种防御性编程技术,程序员据此声明“事实 X 必须为真”。如果 X 确实为真,则不会发生任何事情,一切照常进行。如果 X 为假,则会引发错误/异常。如果未捕获和处理此异常,则会导致程序终止。
造成这种情况的原因可能有很多,如果没有更详细的错误消息(如果需要,它会提前向您提供)或无法访问源代码,那么进一步诊断会非常困难。
一个可能的原因是系统库的更新改变了(可能是作为安全修复的一部分)程序所依赖的某些属性。
您最近升级过 Windows 版本吗?如果是,请尝试在虚拟机中在较旧的 Windows 版本中运行该程序(例如,如果您使用的是 Windows 7 Pro,请尝试使用其“XP 模式”功能,否则请尝试使用 VMWare 或 VirtualBox 在虚拟机中安装较旧的 Windows)。如果没有,那么您可能运气不佳,因为如果问题是由安全更新引起的,那么较旧的 Windows 版本可能也会获得该更新。
不幸的是,您可能别无选择,只能购买升级版或寻找适合您的需求并能读取现有文档的替代软件。