vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Fortgeschrittene
dll zur Laufzeit laden 
Autor: Bringtnix
Datum: 11.10.11 15:25

Hallo,

ich möchte den Code einiger Funktionen in meiner Anwendung erst zur Laufzeit laden. Am einfachsten ist wohl das Erstellen einer DLL, die dann dynamisch geladen wird.
Das Erstellen der DLL habe ich mit dem VS erledigt.

Mein Problem ist das Laden bzw. Verwenden der Funktionen aus der DLL. Nasch viel googeln und probieren schaut es momentan so aus:

    Dim assembly As Reflection.Assembly
    Dim t As Type
    Dim obj As Object
 
        assembly = Reflection.Assembly.LoadFile(Environment.CurrentDirectory & _
          "\Klassenbibliothek.dll")
 
        obj = Activator.CreateInstance(assembly.FullName, _
          "ClassLibrary1.clsTest")
 
        t = assembly.GetType("ClassLibrary1.clsTest")
Wie kann ich Funktionen der DLL aufrufen?


Carsten

------------
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (Voltaire)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: Manfred X
Datum: 11.10.11 16:39

Hallo!

Das geht per Invoke.

http://msdn.microsoft.com/de-de/library/system.reflection.assembly
http://www.vbarchiv.net/tipps/tipp_2264-textbox-mit-funktion-zur-formelberechnung.html

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: ModeratorRalfE (Moderator)
Datum: 15.10.11 09:25

Du kannst auch direkt die DLL referenzieren. Sie wird erst geladen, wenn du sie das erste mal verwendest.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: Bringtnix
Datum: 18.10.11 23:48

Hallo,

vielen Dank für Eure Antworten!
Ich war ein paar Tage unterwegs, und jetzt erst zum Testen gekommen.

Mit folgendem Code müßte ich hinbekommen was ich vor habe:
        Dim assembly As Reflection.Assembly
        Dim myMethod As System.Reflection.MethodInfo
        Dim myCls As Object
 
        assembly = Reflection.Assembly.LoadFile(Environment.CurrentDirectory & _
          "\Klassenbibliothek.dll")
 
        myCls = assembly.CreateInstance("ClassLibrary1.clsTest")
 
 
 
        'Zugriff auf die Methode/Funktion in der Klasse 
        myMethod = myCls.GetType.GetMethod("msg")
 
        'Prozedur aufrufen - ohne Argument
        myMethod.Invoke(myCls, Nothing)
 
 
 
        'Zugriff auf die Methode/Funktion in der Klasse 
        myMethod = myCls.GetType.GetMethod("GetZeit")
 
        'Funktion aufrufen - ohne Argument
        Dim str As String = myMethod.Invoke(myCls, Nothing)
 
 
 
        'Zugriff auf die Methode/Funktion in der Klasse 
        myMethod = myCls.GetType.GetMethod("GetEcho2")
 
        'Funktion aufrufen - mit Argument-Array
        Dim astr(1) As Object
        astr(0) = "hallo"
        astr(1) = 123
        Dim str2 As String = myMethod.Invoke(myCls, astr)
Wie funktioniert denn das mit dem direkten Referenzieren? Geht das bei meiner in .net erzeugten DLL?


Carsten

------------
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (Voltaire)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: Manfred X
Datum: 18.10.11 23:55

Hallo!

Direktes referenzieren benötigt lediglich einen Verweis im Projekt.

IDE-Menü: Projekt -> Eigenschaften -> Verweise -> Hinzufügen ->
Reiter: Durchsuchen --> zur DLL-Browsen und sie anclicken.

Danach können die in der DLL enthaltenen Namespaces/Klassen/Modules
in Codedateien des Projekts importiert werden.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: Bringtnix
Datum: 19.10.11 10:08

Dann habe ich mich aber auf eine DLL festgelegt, oder?
Mir ging es darum, meiner Anwendung eine Schnittstelle zu implementieren. So können "fremde Programmierer" eine DLL schreiben, die von mir bzgl. Namen und Argumenten vorgegebene Methoden und Funktionen enthält (die in sich aber etwas tun (berechnen) was ich nicht wissen soll (z.B. Checksummenbildung)).
Daher die Frage wie ich eine DLL zur Laufzeit lade.


Carsten

------------
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (Voltaire)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: ModeratorFZelle (Moderator)
Datum: 19.10.11 10:23

Und warum sagtst Du das nicht gleich?

Das Thema Plugin/Addin per Schnittstellen haben wir hier schon oft besprochen, mal die Suche probiert?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: dll zur Laufzeit laden 
Autor: Blacky
Datum: 19.10.11 22:40

Schau doch mal in den Workshops, da gibts ein schönes Beispiel

VB RULEZ !

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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