Autor Beitrag
randy77
Hält's aus hier
Beiträge: 1


D7
BeitragVerfasst: Sa 10.09.05 22:50 
Hallo Leute,

ich habe eine VB.Net-Klassenbibliothek und würde diese gerne in ein Delphi7 Projekt in der Laufzeit einbinden (late binding).

In Visual Basic gab es dafür folgende Lösung:
mwvb.de/dll2.htm

Die Klasse, die ich einbinden möchte hat folgende Gestalt:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Imports System.Windows.Forms

Public Class NetTest1

    Public Sub Method1()
        MessageBox.Show("lala", "Hallo Welt", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Sub
End Class


Vielen Dank für eure Mühe!
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: So 11.09.05 01:30 
Unter Delphi 2005 funktioniert das entweder über Referenzen, dass Projekt einbinden, dann einen Verweis
auf die Klasse in die Usesklausel, dann ganz normal ansprechen. Oder über Reflection:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
uses 
   System.Reflection

.
.
.

Var 
   as: Assembly;
   t : &Type;
   o : System.Object;
   m : MethodInfo;

   t := Assembly.loadFrom('XXX.DLL').GetType('XXX'); // Klasse
   o := Activator.CreateInstance(t);
   m := t.GetMethod ('Methode');
   m.Invoke (o,[Parm1,parm1...]);


Ich weiss nicht ob das bei D7 auch so ist... kannst ja mal posten ob es funktioniert...würd mich interessieren.
(Ich hab VB-Klassen immer über die Referenzen verwendet, aber wenn du ein Late Binding brauchst...)

Gruß