Net szemek Delphian

Borland Delphi 7

Az új fejlesztési rendszerre való áttérés kérdését figyelembe vevő programozók számára az egyik legfontosabb kérdés az, hogy hogyan lehet a régi rendszert használni az új rendszerben.

Szóval, mozgassa a Delphi kódot. Net segítségével a következő módszereket használhatja:

- használatban van. Nettó COM objektumok kifejlesztése a Delphi-ben;

- használatban van. Net DLL-ek. kifejlesztett Delphi;

A kód újraírása

Ez a módszer, annak ellenére, hogy egyértelmű, bizonyos esetekben a legkomplikáltabb, sőt egyszerűsíti a kapott kódot.

Az algoritmusok más nyelvekre történő átvitelének technikája sok programozó számára ismerős. Sőt, vannak olyan automatikus fordítók, mint Pas 2 C. Pascal, hogy a bemeneti kódot átalakítjuk C / C ++ - kód (persze, valami, amit kézzel kell szerkeszteni később, de az alapítvány kapunk egészen elfogadható).

Anélkül, hogy a kézi kódfordítás nyilvánvaló pillanataiban részletesen elmélkednének, szeretném emlékeztetni a következőket:

- mint a C # ott eljárások és függvények kívül az osztályok, a megvalósítása a globális alprogramok célszerű egy speciális (-ik) osztály (ok) statikus módszerek;

- mivel nincsenek globális változók a C #-ban, célszerű egy speciális osztály (oka) t használni statikus mezőkkel végrehajtásukhoz;

- hogy a Delphi rekordokkal egyenértékű konstrukciókat hajtson végre. Mindkét osztályt és struktúrát használhatja (struct) - a megoldás az átvitel során másolható adatok mennyiségétől függ, stb.

- mint a C # objektum törlődik automatikusan, meg kell alaposan vizsgálni a sorozat létrehozását és törlését a tárgyak, különösen akkor, ha a Delphi objektumok, a romboló végrehajtott kibocsátás források - az ilyen esetekben a legjobb megoldás bevezetése lenne a megfelelő módszerek vagy a „zárás”, vagy a végrehajtás IDisposable felületen.

Az alábbi táblázat az alapvető típusok megfeleltetését mutatja:

Használja be. Nettó COM objektumok kifejlesztése a Delphi-ben

Mivel az OLE szabvány egyértelműen meghatározza az adatcsere protokoll és adat formátumok nincsenek funkciók fejlesztése COM-objektumok Delphi nem (ráadásul, ami nem kívánatos használni módszer neve, amelyek egybeesnek az Object osztály módszereket C #: Egyenlő, GetHashCode, getType, ReferenceEquals, toString).

Ha a forráskódot például Delphi osztályokkészleteként hajtja végre. ez lehet írni Delphi nagyon egyszerű COM nevű objektumot (inproc - szerver), aki ellátja a funkcióját a homlokzat (lásd például tervezési minták www.dotsite.spb.ru.).

By the way, sok esetben a bevezetése a "homlokzat" lehetővé teszi még egyszerűbbé a rendszert oldalán a fő kódot.

Használja be. Net DLL-ek. kifejlesztett Delphi

mert A Delphi lehetővé teszi a dinamikus DLL-ek fejlesztését. akkor a meglévő Delphi kód "csomagolható" a könyvtárba. Ez a módszer arra kényszerít, hogy egy kicsit többet dolgozzon a C #-ban, mint a COM objektumok használata, bár bizonyos esetekben például a rendszer teljesítményét is felhasználhatja.

A C # -ből származó DLL-funkciók hívása jól ismert a dokumentációban. Net. A következő példa egy DLL használatáról. kifejlesztett Delphi.

DLL-fejlécek a Delphi-ban:

// Paraméter nélküli eljárás

Proc1 eljárás; stdcall;

// Eljárás az egész paraméterekkel

eljárás Proc2 (A, B: egész szám); stdcall;

// Eljárás valódi paraméterekkel

Proc3 eljárás (A, B: kettõs); stdcall;

// Eljárás logikai paraméterekkel

Proc4 eljárás (A, B: logikai); stdcall;

// Eljárás dátum / idő típus paraméterekkel

eljárás Proc5 (A, B: TDateTime); stdcall;

// Eljárás húrparaméterekkel

eljárás Proc6 (P1, P2: PChar); stdcall;

Figyeljen két pontra:

- használja a stdcall hívásmódosítót

- vonalak, mint paraméterek kerülnek PChar

Megfelelő adattípusok, lásd a táblázatot

Forráskód a C #-ban:

Kapcsolódó cikkek