AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Klassenbiliothek (DLL) dynamisch Laden ?
Thema durchsuchen
Ansicht
Themen-Optionen

Klassenbiliothek (DLL) dynamisch Laden ?

Ein Thema von slemke76 · begonnen am 12. Jun 2007 · letzter Beitrag vom 5. Jul 2007
 
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#5

Re: Klassenbiliothek (DLL) dynamisch Laden ?

  Alt 14. Jun 2007, 18:31
Hallo,

erstmal vielen Dank für deine superschnelle Antwort.

Zitat von Elvis:
Obwohl du VB benutzt, will ich mal trotzdem was dazu schreiben[1].
Die Fussnote ist nicht schlecht Jaein - ich will etwas vorhandenes weiterentwickeln....

Ich habs leider nicht hinbekommen, ich dreh langsam durch...

Also - Klassenbibliothek mit folgenden Inhalt erstellt:

Code:
Namespace PluginRtl
    Public Interface IMathDings
        Function Add(ByVal left As Integer, ByVal right As Integer) As Integer
    End Interface
End Namespace

Namespace PluginLib
    Public Class MathDings
        Implements PluginRtl.IMathDings
        Public Function Add(ByVal left As Integer, ByVal right As Integer) As Integer Implements PluginRtl.IMathDings.Add
            Return left + right
        End Function
    End Class
End Namespace
Hoffe, daß das alles korrekt ist. DLL wird ohne Fehler erstellt.

Jetzt gibt es wieder Probleme im Hauptprogramm - zunächst habe ich die typeof-Passage noch nicht umgesetzt. Da es nur eine If-Bedingung ist, habe ich das erstmal vernachlässigt. Das CreateInstance schlägt fehlt (wobei mir im übrigen die korrekte Syntax unter VB.NET nicht klar ist).
Schliesslich habe ich es soweit reduziert:
Code:
Imports System.Reflection
Module Module1
    Sub Main()
        Dim plugin As Assembly = Assembly.LoadFrom("<Pfad>\PluginLib.dll")
        Dim mathDingsType As Type = plugin.GetType("PluginRtl.MathDings")
        Activator.CreateInstance(mathDingsType)
    End Sub
End Module
Müsste das nicht eigentlich zumindest sauber abgearbeitet werden (auch wenn ich mit der Instanz nix anstellen kann, weil das Ergebniss von .CreateInstance nicht in einer Variable gespeichert wird) ? Es kommt nämlich die Meldung "Der Wert darf nicht NULL sein." bei .CreateInstance (die Meldung in meinem zweiten Post ist ja ähnlich).

Nochmal etwas grundsätzliches:
Wo liegt denn eigentlich der praktische Unterschied, ob ich mit CreateInstance - wie aus deinem Beispiel - oder ohne - wie aus meinem zweiten Posting - arbeite ?

Vielen Dank für Eure Geduld.


Sebastian
  Mit Zitat antworten Zitat
 


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 10:34 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-2025 by Thomas Breitkreuz