Spolupráce Delphi a .NET via JCL

vložil Radek Červinka 18. listopadu 2014 23:16

Pouze archivace kódu z originálního článku Delphi and .NET Interop with JVCL pro budoucnost.

function TfrmMain.AddFunction(aXValue: Integer; aYValue:Integer): Integer;
var
  Host: TJclClrHost;
  Obj: OleVariant;
begin
  try
    Host := TJclClrHost.Create('v4.0.30319');
    Host.Start();

    Obj := Host.DefaultAppDomain
        .CreateInstance('Example1ClassLibrary',
        'Example1ClassLibrary.Example1')
        .UnWrap();

     Result := Obj.AddFunction(aXValue, aYValue);

    Host.Stop();
    Host.Free;
  Except
     on E : Exception do
     begin
       ShowMessage('Exception class name = '+E.ClassName + ' ' + 'Exception message = '+E.Message);
     end;
  end;
end;
namespace Example1ClassLibrary
{
    [ComVisible(true)]
    public class Example1
    {
        public int AddFunction(int aXValue, int aYValue)
        {
            return aXValue + aYValue;
        }
    }
}

Druhý příklad

function TfrmMain.AddFunction(aXValue: Integer; aYValue:Integer): Integer;
var
  Fads: TJclClrAppDomainSetup;
  Fad: TJclClrAppDomain;
  Ov: OleVariant;
  obj: _ObjectHandle;
begin
  try
    Fads := FClrhost.CreateDomainSetup;

    Fads.ApplicationBase := '..\Example2\Debug\Win32\';
    Fad := FClrHost.CreateAppDomain('myNET', Fads);
    obj := (Fad as _AppDomain).CreateInstanceFrom('Example2ClassLibrary.dll',
         'Example2ClassLibrary.Example2');
    ov := obj.Unwrap;
    result := ov.AddFunction(aXValue, aYValue);
  except
    on E : Exception do
     begin
       ShowMessage('Exception class name = '+E.ClassName +
          ' ' + 'Exception message = '+E.Message);     end;
  end;
end;


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Praxe

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS