2017-04-20 1 views
-1

Ich möchte eine Windows-Desktop-Anwendung mit electron.js erstellen, die .NET-Assembly laden und verwenden (z. B. nennen Sie es "Display.dll"). Diese Assembly hängt von der externen DLL ("Line1C.dll") ab, die mit einiger Hardware geliefert wurde. Scheint wie Line1C ist ein COM-Objekt, aber leider habe ich keine Dokumente.edge.js: wie eine Methode von .NET-Assembly mit einem Verweis auf ein COM-Objekt aufgerufen wird?

Ich kann Klasse Line1C.Line45 von Line1C.dll in meiner Winforms-Anwendung einfach durch Hinzufügen von "Using Line1C;" Verweis auf eine DLL-Datei in "References" in Visual Studio instanziieren und es funktioniert gut.

enter image description here

Ich kann mit elektronen Rand Klassen in .NET-Assemblies aus meiner Elektronen Anwendung aufrufen, aber wenn ich Display.dll Klasse Methode aufzurufen versuchen, die Line1C.Line45 Instanz erstellt, erhalte ich eine Ausnahme:

„System.Runtime.InteropServices.COMException (0x80040154): der COM-Klassenfactory für die Komponente mit CLSID {Abrufen von 9AA62C52-999A-11D3-9DB5-0000E8DBEDCE} konnte aufgrund des folgenden Fehler: 80040154 Klasse nicht registriert (Ausnahme von HRESULT : 0x80040154 (REGDB_E_CLASSNOTREG))

ist e eine Möglichkeit, dies wie in einer üblichen .net-Anwendung funktionieren zu lassen?

Antwort

0

Das Problem war, dass es nicht möglich ist, direkt ein 32-Bit-COM-Objekt in einer 64-Bit-Anwendung zu erhalten. Also baue ich meine Elektronenapplikation für die ia32-Architektur (mit dem Wiederaufbau der Elektronenkante) und es funktioniert jetzt.

Verwandte Themen