【问题标题】:edge.js: how to call a method from .NET assembly with a reference to a COM object?edge.js:如何通过引用 COM 对象从 .NET 程序集中调用方法?
【发布时间】:2017-04-24 11:28:23
【问题描述】:

我想创建一个带有 electron.js 的 Windows 桌面应用程序,它将加载和使用 .NET 程序集(例如,将其称为“Display.dll”)。该程序集依赖于某些硬件附带的外部 dll(“Line1C.dll”)。似乎 Line1C 是一个 COM 对象,但不幸的是,我没有任何文档。

我可以通过添加“使用 Line1C;”在我的 winforms 应用程序中简单地从 Line1C.dll 实例化类 Line1C.Line45,在 Visual Studio 的“参考”中引用 dll 文件,它工作正常。

我可以使用 electron-edge 从我的电子应用程序调用 .NET 程序集中的类,但是当我尝试调用 Display.dll 的创建 Line1C.Line45 实例的类方法时,我得到一个异常:

“System.Runtime.InteropServices.COMException (0x80040154):检索具有 CLSID {9AA62C52-999A-11D3-9DB5-0000E8DBEDCE} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(来自 HRESULT 的异常: 0x80040154 (REGDB_E_CLASSNOTREG))

有没有办法让它像在普通的 .net 应用程序中一样工作?

【问题讨论】:

    标签: .net node.js com electron edge.js


    【解决方案1】:

    问题在于无法在 64 位应用程序中直接获取 32 位 COM 对象。所以我为 ia32 架构构建了我的电子应用程序(重建电子边缘),它现在可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-26
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2023-03-31
      • 2012-01-01
      相关资源
      最近更新 更多