不支持此接口(HRESULT异常:0x80004002(E_NOINTERFACE))

时间:2016-04-21 12:18:45

标签: c# .net interface com

我想利用Leica库来获得Leica Disto激光测量仪器的测量结果。这是一款配备BT Smart的新车型。 他们提供Disto Transfer PC软件。它完成了设备-PC连接的所有工作。可以将该软件的测量结果转换为其他软件。

我前段时间实现过它并且有效。但是现在(也许Disto Transfer PC已经更新了???)我在尝试创建Disto4.Disto4()对象时遇到了这样的错误。

我收到以下错误消息: 无法将“System .__ ComObject”类型的COM对象强制转换为接口类型“Disto4.Disto4”。此操作失败,因为对IID为“{C19D78CB-466D-420F-BC58-930B7B49B5A4}”的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此接口(HRESULT异常:0x80004002(E_NOINTERFACE) ))。

我做了什么来安排一切:

  1. 我安装了Disto Transfer PC(SetupDISTO4_402.exe)
  2. 我是以管理员身份推出的。 COM类已注册。
  3. 我使用regtlibv12.exe注册了Disto40.tlb
  4. 我在C#项目中添加了引用,从安装了Disto transfer 40的文件夹中选择Disto40.tlb。
  5. 已创建Interop.Disto4.dll文件。
  6. Disto4.Disto4 distoApp = new Disto4.Disto4();命令运行时,它会成功启动Disto Transfer PC,但会抛出如上所述的异常。
  7. 这很奇怪,因为一年前它运作良好。它在Windows 8.1上进行了测试。 现在我们尝试在Windows 10上检查它,但事实证明Windows 8.1也存在问题。

    这是WinForms应用程序。

    我在Main()方法之前有[STAThread]。

    我尝试为x64和x86构建它。

    如果你能提供帮助,我感激不尽。

    Myzzard

0 个答案:

没有答案