Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 38
  1. #1
    Verwirrungsbeauftragter Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard [VB .NET] .DLL oder .VB dynamisch einbinden

    Hallo,
    Ich suche eine Möglichkeit eine mit VB .NET erstellte DLL oder .VB-Datei mit VB 2008 in ein Projekt einzubinden. Der Name der Datei ist aber noch nicht bekannt und wird erst zur Laufzeit ermittelt. Ich habe bei beiden schon ewig gegoogelt und aber nichts außer Beispiele, die nicht wirklich funktionieren gefunden.
    - Ich hab zwar einige Beispiele über System.Reflection gefunden, aber ich kann die DLL damit nicht einbinden, weil MS VB sie für "eine nicht gültige Assembly-Datei" hält.
    - Mit System.CodeDOM scheint es auch nicht zu klappen, einen Quellcode zu kompilieren, da VB eine DLL mit kryptischen Namen sucht und natürlich nicht findet. Kann mir jemand helfen?

    Vielen Dank schonmal im voraus fürs Antworten
    g.

  2. #2
    VB.NET + CSS Coder Avatar von DRIFTman
    Registriert seit
    Jan 2008
    Beiträge
    148

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    würde mich auch interessieren

    hast du einstiegspunkte in der dll??? wenn ja wie haste die gemacht??

  3. #3
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    Was meinst du mit "Einstiegspunkten"? Ich kann dir da nicht richtig folgen.

  4. #4
    VB.NET + CSS Coder Avatar von DRIFTman
    Registriert seit
    Jan 2008
    Beiträge
    148

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    einstiegspunkte in einer dll sind punkte an dem das programm einsteigt

    aber deine frage ansich mit dem einbinden interessiert mich auch

  5. #5
    \o/ Avatar von sumisumi
    Registriert seit
    Jan 2008
    Beiträge
    4.038

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    >einstiegspunkte in einer dll sind punkte an dem das programm einsteigt

    beste Definition ever und auch noch falsch

    da ich es selbst nicht besser wusste hier mal eine Definition von msdn

    A DLL can optionally specify an entry-point function. If present, the system calls the entry-point function whenever a process or thread loads or unloads the DLL. It can be used to perform simple initialization and cleanup tasks.

  6. #6
    And who are you... Avatar von mo_scanner
    Registriert seit
    Apr 2006
    Ort
    C:\
    Beiträge
    421

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    mit dem problem habe ich mich auch auseinander gesetzt. hier habe ich vielleicht einen hilfreichen link http://www.tutorials.de/forum/net-tu...sch-laden.html

    angehängt habe ich ein programm mit source, welches ich geschrieben habe, um dieses dynmaische laden einer dll zu üben. außerdem ist es recht hilfreich, um die klassen und methoden einer dll zu ermittlen. (die namenlosen buttons in der reihenfolge von links nach rechts drücken, nachdem ein eintrag ausgewählt wurde.) als beispiel liegen im debug ordner bereits 2 dlls, die eingelesen werden können.
    um andere dlls einzulesen einfach in den ordner der anwendung schmeißen.

    gruß
    Angehängte Dateien Angehängte Dateien

  7. #7
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    Danke für den Tipp. Den Link hab ich auch bei Google gefunden, hat bei mir aber komischerweise nicht funktioniert. Es kibt nur noch ein Problem bei der Sache: In der Listbox sind bei auswählen einer DLL sehr viele Klassen sichtbar, benötigt wird von mir aber nur die eigentliche "Hauptklasse" (bei dir SMSGott.SMSGott). Wie lässt sich die automatisch auswählen?

  8. #8
    And who are you... Avatar von mo_scanner
    Registriert seit
    Apr 2006
    Ort
    C:\
    Beiträge
    421

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    indem du diese explizit angibst, siehe quelltext, da wird der name aus der listbox genommen

  9. #9
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    OK, soweit so gut. Nun liegt das problem aber dabei, dass ich den Namen dieser Klasse nicht kenne, man müsste sie also aus der DLL herausfinden.

  10. #10
    VB.NET + CSS Coder Avatar von DRIFTman
    Registriert seit
    Jan 2008
    Beiträge
    148

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    disassembling?? oder existiert sowas dann nimmer. wenn du mir die dll schickst kann ich siemal durch IDA jagen

    EDIT:kannst du mir mal bitte auch den source code von der SMS GOTT dll schicken?

  11. #11
    And who are you... Avatar von mo_scanner
    Registriert seit
    Apr 2006
    Ort
    C:\
    Beiträge
    421

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    mein programm veranschaulicht doch wunderbar, wie man zur laufzwit nicht nur den namen sondern auch die klassen UND methoden der klassenbibliothek herausfinden kann. du musst eben einen algorithmus entwickeln um zur laufzeit den klassennamen herauszufinden (aus dem namensarray, das von der dll zurückgegeben wird)

    ein beispiel ist eben eine auflistung und auswahl der klasse.
    sonst bleibt zu sagen, dass es sinnvoll wäre bei deinen bibliotheken (falls du zugriff darauf hast) einheitliche klassennamen zu verwenden. dadurch kannst du auf jede dll mit dem selben klassennamen gleich zugreifen.

    ich habe den source der dll mal angehängt. nicht besonderes, ne public klasse und public methoden.
    Angehängte Dateien Angehängte Dateien

  12. #12
    VB.NET + CSS Coder Avatar von DRIFTman
    Registriert seit
    Jan 2008
    Beiträge
    148

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    AHH danke!!!

    also meine functionen in einer dll müssen public functions sein.gut und schön, kann auch in meiner eigenen dll alle dinge anzeigen lassen. aber wie kann ich nu die funktionen aufrufen? oder bin ich einfach zu dum und hab was übersehen?

    warum funzt eigentlich button3 net?

    aber soweit super THX

  13. #13
    And who are you... Avatar von mo_scanner
    Registriert seit
    Apr 2006
    Ort
    C:\
    Beiträge
    421

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    ich weiß selber nicht mehr wozu button3 ist, kannst es ja im source rausfinden wenn du möchtest.

    zum aufrufen
    das aufrufen ist ein bisschen tricky und nicht wirklich ohne entsprechende kenntnisse rauszufinden.
    das ist der vorgang um eine funktion aufzurufen:
    Code:
    Assembly = Reflection.Assembly.LoadFile(Environment.CurrentDirectory & "meinebibliothek.dll")
    t = Assembly.GetType("Assemblyname.Class1")
    method = t.GetMethod("MeinePublicFunctionDieEinenStringLiefert")
    obj = Activator.CreateInstance(t)
    string1 = method.Invoke(obj, New Object() {txt1.Text, txt2.Text})
    'Hier wurden als zweites Argument ein Objectarray mit den Argumenten für die aufzurufende Methode (in richtiger Reihenfolge) übergeben

  14. #14
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    Danke, funktioniert alles super. Aber gibt es eine Möglichkeit, dass die DLL auf eigenschaften (und Variablen und Methoden) der Klasse zugreift, die sie ausführt?

  15. #15
    And who are you... Avatar von mo_scanner
    Registriert seit
    Apr 2006
    Ort
    C:\
    Beiträge
    421

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    nunja so direkt kann ich dir das wohl nicht sagen, dafür reicht wohl auch mein fachwissen nicht. allerdings kannst du ja alle möglichen sachen per argument direkt in die gestartete funktion "einschleusen", so wie es in meinem beispielcode auch mit den zwei textbox inhalten passiert.

  16. #16
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    Ok, ich könnte es so machen, dass die Function eine spezielle Klasse zurückgibt, die beschreibt, was sie verändern möchte (was aber sehr kompliziert wäre, vor allem, wenn das Hauptprogramm viele Controls besitzt). Deswegen hatte ich auch die Idee, VB-Code einzubinden, der dann dirakt zugreifen kann.

    grüssse
    g.

  17. #17
    Troubleshooter
    Registriert seit
    Aug 2004
    Beiträge
    436

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    wenn du auf die dll's zugreifen willst dann geb ich dir das Stichwort P-Invoke oder auch P/invoke

    und wenn du in die Methoden(Name, Parameter und Rückgabewerte) der DLL's gucken willst dann empfehle dich dir Dependency Walker oder PeId

    Wenn du hingegen wissen willst was eine Methode macht dann musst du wenns keine VB.net oder C# DLL ist, disassemblen oder etwaige andere Techniken nutzen um daran zu kommen.

  18. #18
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    Das zugreifen auf die DLL ist genauso wie den Rückgabewert einer Funktion zu ermitteln kein Problem mehr. Mein Problem liegt darin, dass die DLL Propertys der Form/Klasse, die eine Funktion/Prozedur der DLL ausführt, verändern können soll.

  19. #19
    Troubleshooter
    Registriert seit
    Aug 2004
    Beiträge
    436

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    du willst also funktionen in der dll verändern das sie etwas anderes macht?

    steh total aufm schlauch xD

  20. #20
    Verwirrungsbeauftragter

    (Threadstarter)

    Avatar von gadgaet
    Registriert seit
    Jan 2007
    Ort
    Papierkorb
    Beiträge
    164

    Standard Re: [VB .NET] .DLL oder .VB dynamisch einbinden

    Nein, ich will, dass die DLL Eigenschafen von Controls/Forms im Hauptprogramm verändert.

  21.  
     
     
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •