我正在把头发拉出来...

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

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

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

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


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


我在64位计算机上是否有问题?我不尝试使用64位DLL版本。

最佳答案

好的解决方案是:


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


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

参考:How to use a 32 bit COM object on Windows Server 2008 (works on 2008 R2 but non 2008)

10-07 13:37