Müsste der Typ nicht OleVariant heißen? Also wenn du Delphis Art von IDispatch nutzen willst.
Du musst aber nicht den Weg über
COM gehen, wenn du nicht willst.
Du kannst zum Beispiel die JCL nutzen, um die CLR zu hosten und dann einfach Instanzen deiner Klassen erzeugen. Mehr dazu
hier. Aber immer daran denken, dass deine .Net Typen weiterhin ComVisible(true) sein müssen.
Delphi-Quellcode:
var
Host: TJclClrHost;
Obj: OleVariant;
begin
try
Host := TJclClrHost.Create();
Host.Start();
Obj := Host.DefaultAppDomain
.CreateInstance('
DeineAssembly',
'
MeinComObjekt.Environment')
.UnWrap();
WriteLn('
Test: ', Obj. aftGetDLLVersion_str());
Host.Stop();
except
on E:
Exception do
Writeln(E.Classname, '
: ', E.
Message);
end;
end.