Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Zugriff auf C# COM-Objekt von Delphi aus

  Alt 13. Apr 2011, 21:28
Delphi-Quellcode:
var
  Obj: Variant;
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”

Geändert von Elvis (13. Apr 2011 um 21:32 Uhr) Grund: Quote hinzugefügt
  Mit Zitat antworten Zitat