AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) C# Plugin mit RemObjects Hydra oder Interfaces in C#
Thema durchsuchen
Ansicht
Themen-Optionen

Plugin mit RemObjects Hydra oder Interfaces in C#

Ein Thema von Luckie · begonnen am 15. Jan 2008 · letzter Beitrag vom 16. Jan 2008
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Plugin mit RemObjects Hydra oder Interfaces in C#

  Alt 15. Jan 2008, 12:47
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:
using System;
using System.Collections.Generic;
using System.Text;

namespace HydraPluginHost
{
    interface PluginInterface
    {
        string GetAuthor();
        string GetVersion();
    }
}
Plugin:
Code:
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]";
        }
    }
}
Laden des Plugin in der Host-anwendung:
Code:
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);
            }
        }
Compilieren tut er es ohne Fehler. Allerdings zur Laufzeit bekomme ich in der Zeile this.Text = (currentPlugin as PluginInterface).GetAuthor(); den Fehler:
Zitat:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Ich müsste wohl erst eine Objekt-Instanz von PluginInterface erzeugen. Aber da stehe ich jetzt etwas auf dem Schlauch, wie ich das mache.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Plugin mit RemObjects Hydra

  Alt 15. Jan 2008, 19:17
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ß
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Plugin mit RemObjects Hydra

  Alt 16. Jan 2008, 08:05
Zitat von Alter Mann:
fehlt da nicht ein CoInitialize?
Das könnte es sein.

Zitat:
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?
Ich habe den erst besten genommen, den mit Google geliefert hat und der ging (mit dem Firefox).
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Plugin mit RemObjects Hydra

  Alt 16. Jan 2008, 10:21
In welchem Namespace ist denn CoInitialize enthalten?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Plugin mit RemObjects Hydra

  Alt 16. Jan 2008, 11:44
Ich habe mittlerweile herausgefunden, dass es unter C+# wohl kein CoInitialize gibt. Die Grundlegende Frage ist also, wie man ein Interface unter C# nutzt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz