无法转换COM对象(Delphi XE7 - Delphi Berlin不兼容)

问题描述 投票:1回答:1

我最近安装了Delphi Berlin。没工作,所以我当天卸载了它。现在我的Delphi XE7停止工作了。当我尝试编译任何东西时,我收到此错误,我不知道如何解决它。

无法将“System .__ ComObject”类型的COM对象强制转换为接口类型“Borland.Studio.Interop.IInteropMessageService”。此操作失败,因为对于具有IID'{FF877130-F96F-3885-9A3E-3093A3C1D831}的接口的COM组件的QueryInterface调用由于以下错误而失败:加载类型库/ DLL时出错。 (来自HRESULT的异常:0x80029C4A(TYPE_E_CANTLOADLIBRARY))

错误就像上面显示的那样。没有提到源文件。


我已经尝试使用Embarcadero提供的“修复”,但他们的工具不起作用:

C:\Delphi\Delphi XE7\bin>tregsvr -t Borland.Studio.Interop.tlb
Embarcadero Turbo Register Server(32) -- COM Server Registration utility.
Version 1.3  Copyright (c) 1997-2010 Embarcadero Technologies, Inc.

Type library name: C:\Delphi\Delphi XE7\bin\Borland.Studio.Interop.tlb
Type library GUID: {F939BACD-3FD5-437A-833F-BA3535A45966}

Error: Error accessing the OLE registry

FIX(由@rruz建议):上面的实用程序需要在“Admin”(提升)权限下运行。谢谢@RRuz。

delphi delphi-xe7 delphi-10.1-berlin
1个回答
0
投票

我遇到了同样的问题,但情况有点糟糕。

我还必须使用以下命令注册此类型库。使用提升的权限运行它:

tregsvr -t Borland.Studio.ToolsAPI.tlb

可能是由于将Delphi安装移动到最初安装在错误文件夹中的其他文件夹,迁移向导解决了一些但显然不是全部,现在重命名再次工作。

机器有点迟钝,可能是因为进程监视器仍在运行,幸运的是这个工具的新版本工作,这让我找到了这个问题。

此工具显示查询的所有注册表项...并且此特定工具弹出“未找到名称”。

我做了如下:

  1. 启用捕获事件
  2. 清除屏幕。
  3. 很快就去重构重命名

立即停止捕获事件。

然后分析日志;)

© www.soinside.com 2019 - 2024. All rights reserved.