Interfețe fără iid (guid)

Interfețe fără IID (GUID). Cum să lucrezi în Delphi7?

Prompt ce să prețuiască pe crearea de interfețe fără IID (GUID) în Delphi7.
Aveți nevoie de mai multe informații despre mecanica interne ale obiectelor de lucru care implementează aceste interfețe (pe ordinea de instanțierea înainte de interacțiune).






(Aceasta ar trebui să fie foarte diferită de implementarea în Delphi 3. Am dreptate?)

Informațiile sunt de dorit în formă electronică.

Interfețele fără IID pot fi realizate. Implementarea nu este diferită de aceleași interfețe, dar cu IID. Singura diferență este că nu pot fi solicitate. Pentru a primi o astfel de interfață este posibilă numai direct, reducerea unei instanțe de clasă prin as.

Și care este bucuria interfeței fără IID? Suppoorturile nu se folosesc (ceea ce reprezintă deja un inconvenient uriaș).

În consecință, pentru clasele care implementează metodele acestor interfețe, nu poți avea grijă de linia de viață „a doua“ - line pe baza de numărare de referință, și se bazează pe „manual“ durata de viata obiect de control (gratuit () cauza, de exemplu, indiferent de utilizarea interfeței) .






Am dreptate?

Poate că există diferențe și nuanțe de lucru cu astfel de interfețe Delphi7 din versiunile anterioare (6.0 și 5.0, de exemplu)?


> În consecință, pentru clasele de implementare a unor astfel de metode
> interfețe, nu vă pasă de linia "a doua"
> linii de viață bazate pe numărarea de referință și complet
> se bazează pe gestionarea "manuală" a duratei de viață
> object (apel gratuit (), de exemplu, indiferent de
> folosind interfața).
> Am dreptate?

Nimic nu împiedică organizarea aceluiași comportament (gestionarea manuală pe durata vieții) și pentru interfețele cu IID.
Deci, tot nu are sens.

Sau doar le salvați (ghiduri), vă temeți că cineva nu va fi de ajuns? )))

În mod prestabilit, ele nu sunt vizibile din exterior. Pentru a le face vizibile, trebuie să depuneți eforturi.

> În teorie, cu fiecare cerere de interfață cu IID
> numărul referințelor de referință crește

Uită-te în modulul Sistem, clasa TinterfacedObject.
Vedeți modul în care sunt implementate metodele _Addref și _Release.
Asta este, manual, și a implementat controlul automat al duratei de viață a obiectului.
Și nimic nu vă împiedică să realizați aceste stâlpi complet diferit, IID nu are nimic de-a face cu asta.
Singurul lucru care va fi furnizat cu adevărat automat este apelurile _Addref și _Release.
Cauzele lor compilator, și că, atunci când sunt chemați să facă - dacă să ia în considerare link-uri, sau presupunem că decideți să aveți

Memorie: 0,74 MB
Durată: 0,05 secunde







Articole similare

Trimiteți-le prietenilor: