Net ochi Delphian

Borland Delphi 7

Pentru programatorii care iau în considerare problema tranziției la un nou sistem de dezvoltare, una dintre întrebările principale este modul în care vechiul sistem poate fi utilizat în noul sistem.







Deci, pentru a muta codul Delphi la. Net puteți utiliza următoarele metode:

- utilizarea în. Obiectele Net COM dezvoltate în Delphi;

- utilizarea în. Net DLL-uri. dezvoltat în Delphi;

Rescrierea codului

Această metodă, în ciuda simplității sale, se poate dovedi, în unele cazuri, cea mai rațională și chiar simplifică codul rezultat.

Tehnica de transfer al algoritmilor în alte limbi este cunoscută de mulți programatori. Mai mult, există traducători automate, cum ar fi Pas 2 C. Pascal că codul de intrare este convertit la C / C ++ - cod (desigur, ceva ce trebuie să editați manual mai târziu, dar fundația este obținut destul de acceptabil).

Fără să stau în detaliu cu privire la momentele evidente ale traducerii codului manual, aș dori să reamintesc următoarele:

- deoarece C # nu are proceduri și funcții în afara clasei, este recomandabil să se utilizeze o clasă (clase) speciale cu metode statice pentru a implementa subrutine globale;

- deoarece nu există variabile globale în C #, este recomandabil să se utilizeze o clasă (clase) speciale cu câmpuri statice pentru implementarea lor;

- să pună în aplicare construcții echivalente cu înregistrările Delphi. Puteți utiliza atât clase, cât și structuri (struct) - soluția depinde de cantitatea de date care pot fi copiate în timpul transferului ca parametri etc.

- ca și în C # obiecte sunt șterse în mod automat, trebuie să ia în considerare cu atenție secvența de creare și ștergere a obiectelor, în special atunci când în obiecte Delphi, destructor efectuat eliberarea de resurse - în astfel de cazuri, cea mai bună opțiune ar fi introducerea unor metode adecvate sau „închidere“ sau interfața IDisposable de punere în aplicare.







Tabelul de mai jos prezintă corespondența dintre tipurile de bază:

Utilizați în. Obiectele Net COM dezvoltate în Delphi

Deoarece standardul OLE definește clar protocolul de schimb și formate de date, nu există caracteristici în dezvoltarea COM-obiecte din Delphi nu este (în plus, ceea ce nu este de dorit să se utilizeze nume de metode care coincid cu metodele clasei Object din C #: Egali, GetHashCode, gettype, ReferenceEquals, ToString).

Dacă codul sursă este implementat, de exemplu, ca un set de clase Delphi. este posibil să se scrie în Delphi este foarte simplu obiect COM pe nume - (. a se vedea, de exemplu, modele de design pe www.dotsite.spb.ru) (inproc server), care va îndeplini funcțiile fațadei.

Apropo, în multe cazuri, introducerea "fațadei" permite chiar simplificarea sistemului din partea codului principal.

Utilizați în. Net DLL-uri. dezvoltat în Delphi

pentru că în Delphi vă permite să creați DLL-uri dinamice. atunci codul Delphi existent poate fi "împachetat" în bibliotecă. Această metodă vă face să efectuați puțin mai multă muncă în C # decât utilizarea obiectelor COM, deși în unele cazuri poate fi folosită din motive de performanță a sistemului, de exemplu.

Apelarea funcțiilor DLL de la C # este descrisă destul de bine în documentație. Net. Următorul este un exemplu de utilizare a unui DLL. dezvoltat în Delphi.

Anteturile DLL în Delphi:

// Procedura fără parametri

procedura Proc 1; stdcall;

// Procedura cu parametri întregi

procedura Proc2 (A, B: întreg); stdcall;

// Procedura cu parametri reali

procedura Proc3 (A, B: dublă); stdcall;

// Procedura cu parametrii booleeni

procedura Proc4 (A, B: boolean); stdcall;

// Procedură cu parametrii de tip dată / oră

procedura Proc5 (A, B: TDateTime); stdcall;

// Procedura cu parametrii de șir

procedura Proc6 (P1, P2: PChar); stdcall;

Acordați atenție la două puncte:

- utilizează modificatorul de apel stdcall

- linii ca parametri sunt transmise ca PChar

Se potrivesc tipurile de date, vezi tabelul

Codul sursă în C #:







Articole similare

Trimiteți-le prietenilor: