![]() |
Plugin mit RemObjects Hydra oder Interfaces in C#
Ich arbeite gerade mit dem Plugin-System Hydra von RemObjects. Unter Delphi hab eich es schon geschafft Daten mittels eines Interfaces auszutauschen zwischen Plugin und Host-Anwendung.
Jetzt versuche ich das gleiche unter C#. Leider sind da die Beispiele etwas mager. Mein bisheriger Versuch sieht so aus: Plugin-Interface:
Code:
Plugin:
using System;
using System.Collections.Generic; using System.Text; namespace HydraPluginHost { interface PluginInterface { string GetAuthor(); string GetVersion(); } }
Code:
Laden des Plugin in der Host-anwendung:
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using RemObjects.Hydra; using HydraPluginHost; namespace HydraPlugin { [Plugin, VisualPlugin] public partial class HydraPlugin : VisualPlugin, PluginInterface { public HydraPlugin() { InitializeComponent(); } public string GetAuthor() { return "Michael Puff"; } public string GetVersion() { return "0.1 [Demo]"; } } }
Code:
Compilieren tut er es ohne Fehler. Allerdings zur Laufzeit bekomme ich in der Zeile this.Text = (currentPlugin as PluginInterface).GetAuthor(); den Fehler:
private void lbPlugins_DoubleClick(object sender, EventArgs e)
{ try { // wenn leer dann raus if (lbPlugins.SelectedIndex == -1) return; if (lbPlugins.SelectedItem is PluginDescriptor) { // aktuelles Plugin entladen currentPlugin = null; hostPanel1.UnhostPlugin(); // neues Pluigin laden currentPlugin = moduleManager1.CreateInstance(lbPlugins.SelectedItem as PluginDescriptor); hostPanel1.HostPlugin(currentPlugin as IBasePlugin); this.Text = (currentPlugin as PluginInterface).GetAuthor(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } Zitat:
|
Re: Plugin mit RemObjects Hydra
Hi Lukie,
fehlt da nicht ein CoInitialize? Habe mir die Seite von RemObjects mal angesehen, angeblich gibt es da die Möglichkeit eine Trail zu laden, aber irgendwie geht es nur im Kreis: -> Traildownloads -> Testversion -> Traildownloads. Kennst du ein Link wo es geht? Gruß |
Re: Plugin mit RemObjects Hydra
Zitat:
Zitat:
|
Re: Plugin mit RemObjects Hydra
In welchem Namespace ist denn CoInitialize enthalten?
|
Re: Plugin mit RemObjects Hydra
Ich habe mittlerweile herausgefunden, dass es unter C+# wohl kein CoInitialize gibt. Die Grundlegende Frage ist also, wie man ein Interface unter C# nutzt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz