vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Fehler bei Plugin laden mit Mono 
Autor: vbtest2
Datum: 24.12.06 10:59

Hallo,

ich lade das Plugin so ein:

     Dim PlugIns() As String = Directory.GetFiles(Application.StartupPath + _
       strTZ + "Benutzerdaten" + _
            strTZ + "Erweiterungen", "*.dll")
            'Alle .DLL Plugins im Verzeichnis ermitteln
 
            strAnwendungMitErweiterung = "Start"            'Zum einrichten 
            ' Start aufrufen
 
            For Each strPluginPfad In PlugIns           'Alle DLL Dateien im 
            ' Pluginverzeichnis durchlaufen
 
                Try
                    objErweiterung = ErweiterungsObjectErstellen(strPluginPfad) _
                               'Plugin
                    'Plugin laden. Als Start laden, da noch keiner Anwendung 
                    ' zugeordnet
                    MsgBox("a")
                    strPluginAnwendung = objErweiterung.PluginAnwendung    _
                      'Anwendung speichern, in der das Plugin eingebunden 
                    ' werden soll
                    'Oben tritt der Fehler in Mono auf
                    MsgBox("b")
Private Function ErweiterungsObjectErstellen(ByVal strDateiname As String) As _
  Object
 
        Dim f1 As FileStream = New FileStream(strDateiname, FileMode.Open)
 
        Dim rawAssemblyBytes1(f1.Length) As Byte
 
        f1.Read(rawAssemblyBytes1, 0, f1.Length)
        f1.Close()
 
        Dim a As System.Reflection.Assembly = AppDomain.CurrentDomain.Load( _
          rawAssemblyBytes1)
 
        Dim intStelle As Integer = a.FullName.ToString.IndexOf(",") 'Ende des 
        ' Pluginnamen ermitteln. Durch , getrennt
        Dim strTypeName As String = a.FullName.ToString.Substring(0, intStelle) _
              'Name ausschneiden
 
        objErweiterung = a.CreateInstance(strTypeName + "." + _
          strAnwendungMitErweiterung)    'Klasse der Anwendung laden
 
        Return objErweiterung               'Plugin zurückgeben
 
    End Function
Code im Plugin:
 
   Public ReadOnly Property PluginAnwendung() As String Implements _
     PluginInterface.OPlugStart.PluginAnwendung
        Get
            Return strPluginAnwendung
            'Name der Anwendung
        End Get
    End Property
 Private Sub ErweiterungAnzeigen(ByVal strDateiname As String)
 
        ErweiterungsObjectErstellen(strDateiname) 'Die auszuführende 
        ' Erweiterung laden
 
        strAnwendungMitErweiterung = objErweiterung.PluginAnwendung    _
          'Speichert, welche Anwendung Erweiterung ausführt"
 
        Select Case strAnwendungMitErweiterung 'Aufgaben für die verschiedenen 
        ' Formen erledigen
            Case "form1"
                objErweiterung.Oversion = Grundeinstellungen.strProgrammversion _
                       'Versionsnummer übergeben
 
            Case "form2"
 
        End Select
 
 
        Dim bolFormanzeigen As Boolean = objErweiterung.Formanzeigen
 
        Dim intX, intY As Integer
        If bolFormanzeigen = True Then          'Wenn Plugin eine Form enthält
            intX = ((frmAnmeldung.Width - objErweiterung.PluginBreite) / 2) + _
              frmAnmeldung.Location.X      'programm: 800; 580
            intY = (frmAnmeldung.Height - objErweiterung.PluginHöhe) / 2 + _
            frmAnmeldung.Location.Y         'Position berechnen
        End If
 
        objErweiterung.PluginAusführen(intX, intY)                              _
               'Plugin ausführen.
 
 
        timPluginEnde.Interval = 1000           'Jede Sekunde abfragen, ob 
        ' Erweierung noch läuft
        timPluginEnde.Start()                   'Timer starten
        FormenSperren()          'Aufrufende Form sperren
 
    End Sub
Nach der Nachrichtenbox "a" tritt der Fehler auf. Die Fehlerabfrage gibt Fehlernummer 5 aus, ohne weitere Beschreibung. Unter .NET läuft alles Fehlerfrei.

MoMA sagt:
Class Programm.clsErweiterungen:
void ErweiterungAnzeigen(string) Object ObjectType.SubObj(Object, Object)
void ErweiterungAnzeigen(string) Object ObjectType.DivObj(Object, Object)
void ErweiterungAnzeigen(string) Object ObjectType.AddObj(Object, Object)
void ErweiterungAnzeigen(string) Object ObjectType.SubObj(Object, Object)
void ErweiterungAnzeigen(string) Object ObjectType.DivObj(Object, Object)
void ErweiterungAnzeigen(string) Object ObjectType.AddObj(Object, Object)
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Fehler bei Plugin laden mit Mono788vbtest224.12.06 10:59
Re: Fehler bei Plugin laden mit Mono428vbtricks26.12.06 08:04
Re: Fehler bei Plugin laden mit Mono427vbtest226.12.06 11:25
Re: Fehler bei Plugin laden mit Mono435vbtricks26.12.06 11:31
Re: Fehler bei Plugin laden mit Mono416vbtest226.12.06 14:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel