2

我正在为这个拔头发...

我有一个几年前使用 AutoItX 构建的遗留应用程序 - 一切正常。

是时候尝试更新应用程序了,所以我已将其升级到 VS2012/.NET4,但我根本无法获得对 AutoItX 库的引用来工作。

我已经安装了应用程序,使用 regsvr32 注册了 dll,尝试了引用本身的属性设置的每种组合(嵌入互操作类型/隔离),但没有任何乐趣。

每当我尝试创建 AutoItX3 对象时,我不断收到的错误是:

由于以下错误,检索具有 CLSID {1A671297-FA74-4422-80FA-6C5D8CE4DE04} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

是我在 64 位机器上的问题吗?我不想使用 64 位 DLL 版本。

4

2 回答 2

6

好的,解决方案是:

  1. 打开 regedit*32 (c:\windows\syswow64\regedit)
  2. 在 HKEY_CLASSES_ROOT\AppID 中搜索 AutoItX
  3. 我在 HKEY_CLASSES_ROOT\AppID{6E8109C4-F369-415D-AF9A-2AEEFF313234} 中找到它
  4. 创建一个名为 DllSurrogate 的空白 REG_SZ(字符串)条目

由于某种原因,这完全解决了这个问题。

参考:如何在 Windows Server 2008 上使用 32 位 COM 对象(适用于 2008 R2 但非 2008)

于 2013-02-01T14:46:57.157 回答
2

海尼斯,

你使用 x64-Windows 吗?当我开始查看 COM 时,我遇到了同样的问题。如果是这样,您应该尝试在 HKEY_LOCAL_MACHINE\SOFTWARE\WoW6432Node\Classes 中注册您的课程...

试试看!

问候

于 2013-02-01T10:44:28.770 回答