【问题标题】:Launching Word x64 in Delphi在 Delphi 中启动 Word x64
【发布时间】:2014-03-26 08:47:46
【问题描述】:

我目前正在处理基于 Delphi 5 的非常旧的项目。当我尝试在 x64 系统上打开新的 Word 文档时,我收到此错误:

根据MSDN,问题的根源可能是我的Office(x64)版本。在应用程序中,我们使用 TWordApplication 对象来管理 Word 调用。有没有解决这个问题的方法?在 Office x86 上一切正常。

这是代码的一部分:

Word := TWordApplication.Create(nil);
Word.ConnectKind := ckNewInstance;
Word.AutoQuit := True;
Word.Connect;
Word.Options.CheckSpellingAsYouType := False;
Word.Options.CheckGrammarAsYouType := False;
Word.Options.SuggestSpellingCorrections := False;
Word.Options.CheckGrammarWithSpelling := False;
Word.Options.ShowReadabilityStatistics := False;
Word.Options.IgnoreInternetAndFileAddresses := False;
Word.Options.IgnoreUppercase   := True;
Word.Options.IgnoreMixedDigits := True;
Word.Options.ReplaceSelection  := True;

【问题讨论】:

  • Microsoft 是否允许您同时安装 x86 和 x64 版本的 Office?
  • @marcus 不,这是不可能的

标签: delphi ms-word ms-office


【解决方案1】:

问题似乎出在附加到您的文档的 VBA 代码上,而不是 Delphi 代码上。具体来说,涉及一个名为 API 的隐藏模块。也许这是在模板、加载项或自动启动中。

隐藏的模块受到保护,这表明您可能无法修改该模块。您可以尝试联系受保护模块的作者,或者删除任何引入此模块的内容。

恢复到 32 位 Office 是一种更简单的解决方案。这将要求您先卸载 64 位 Office,因为这两个版本不共存。

【讨论】:

  • 也许这是一个更简单的解决方案,但我不能确定所有客户都使用 x86 版本的 Ofiice :-)
  • 在这种情况下,你需要弄清楚这个 API 模块是什么,它来自哪里,以及如何处理它。
  • @user987903:这并不难 :) 一条建议:了解option explicit 并使用它!它会为您省去很多麻烦,因为没有它,任何拼写错误的变量名都会引入一个新变量...
猜你喜欢
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多