edge.js: 如何使用对 COM 对象的引用从 .NET 程序集中调用方法?

edge.js: how to call a method from .NET assembly with a reference to a COM object?

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

我可以在我的 winforms 应用程序中从 Line1C.dll 实例化 class Line1C.Line45,只需添加 "using Line1C;",引用 "References" 中的 dll 文件 [=] 33=] 并且工作正常。

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

"System.Runtime.InteropServices.COMException (0x80040154):为 CLSID 为 {9AA62C52-999A-11D3-9DB5-0000E8DBEDCE} 的组件检索 COM class 工厂失败,原因如下:80040154 Class 未注册(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))

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

问题是无法在 64 位应用程序中直接获取 32 位 COM 对象。所以我为 ia32 架构构建了我的 electron 应用程序(重建了 electron-edge)并且它现在可以工作了。