API (Application Programing Interface) Anwendungsprogrammierschnittstelle, die in allen Computersprachen verwendet werden muss. Was ist eine API? API ist eine Möglichkeit, dass Programme vom Betriebssystem bereitgestellt werden. Testfilterung und Hardware beim Programmieren. Wenn Sie daher APIs verwenden können, um Funktionen während der Programmierung zu implementieren, versuchen wir, sie zu verwenden.
l So verwenden Sie die Windows -API in Delphi
In der täglichen Entwicklungsarbeit verwenden wir häufig Windows -API -Funktionen. Wo existiert die API -Funktionen also? Wir können diese Weise verstehen, dass die API -Funktion in der vom Windows -System bereitgestellten DLL -Systemdatei eingekapselt ist. Beispielsweise wird die PEEP -Prozedur, die wir häufig verwenden, durch Aufrufen von MessageBeep in user32.dll im WindWOS -Systemverzeichnis implementiert. Delphithe am häufigsten verwendeten DLLs sind: advapi32.dll, kernel32.dll, mpr.dll, Version.dll, comctl32.dll, GDI32.dll, OpenGL32.dll, User32.dll, Wintrust.dll, Msimg32.
Wie verwendet Delphi diese API -Funktion? Da die API -Funktion in der System -DLL vorhanden ist, können wir die API -Funktion genauso aufrufen, wie wir die von uns geschriebene DLL aufrufen. Es gibt zwei Möglichkeiten, DLL -Funktionen aufzurufen, eine ist die statische Methode und die andere ist die dynamische Methode. Die APIs, die Windows aufrufen, sind alle statisch, warum? Dies liegt daran, dass diese DLLs die grundlegendsten Dienste des Betriebssystems sind.
l API und tägliche Programmierung
Delphi fasst die meisten Windows -API -Funktionen (hauptsächlich in Windows.pas -Einheit) zusammen, um den größten Teil unserer Arbeiten zu erfüllen. Aber manchmal müssen wir, wenn es besondere Anforderungen gibt, möglicherweise einige APIs aufrufen, die von Delphi nicht eingekapselt wurden, und manchmal sogar API -Funktionen aufrufen, die von Windows nicht veröffentlicht wurden. Wie nennen Sie diese API -Funktionen? Wie bereits erwähnt, verwenden Sie einfach statische Methodenaufrufe. Weitere detailliertere Anrufe finden Sie in den relevanten Informationen.
Der Schlüssel zum Aufrufen dieser nicht eingekapselten API -Funktionen von Delphi liegt darin, die Parameter zu kennen. Sie können die neuesten MSDN oder verwandten Informationen überprüfen.
l api und vcl
Der MFC von Microsoft verfügt über eine große Anzahl eingekapselter Windows -APIs, und VCL ist keine Ausnahme. Der größte Teil der Implementierung von VCL -Funktionen kann nicht von der Windows -API getrennt werden, entweder direkt aufgerufen oder einfach eingekapselt und dann aufgerufen. Zum Beispiel die Implementierung von Tontrol (in der Steuereinheit):
Verfahren tcontrol.Repaint;
var
DC: HDC;
Beginnen
if (sichtbar oder (csdesigning in componentState) und nicht (nicht (
csnodesignvisible in Controlstyle)) und (Eltern <> nil) und
Parent.HandleAllocated dann
Wenn csopaque in Controlstyle dann
Beginnen
// DLLs GetDC wird direkt aufgerufen
DC: = getdc (parent.handle);
Versuchen
// Rufen Sie direkt GDI32.dlls IntersectCliprect auf
IntersectCliprect (DC, links, oben, links + Breite, oben +
Höhe);
// parent.paintcontrols ruft eine große Anzahl von APIs auf
Parent.PaintControls (DC, Self);
Endlich
// Rufen Sie direkt User32.dll's RelevetC auf
LoVedc (parent.handle, dc);
Ende;
Ende sonst
Beginnen
// Die folgenden beiden werden durch Kapselung aufgerufen
Ungültig;
Aktualisieren;
Ende;
Ende;
Es ist zu erkennen, dass es in VCL APIs gibt. kümmern sich um diese nervigen API -Parameter.
Was ist com? COM (Komponentenobjektmodell), ein Komponentenobjektmodell, ist ein Softwarekomponentenmodell, das auf der Windows -Plattform basiert, mit der verschiedene unabhängige Objekte miteinander kommunizieren können, ohne dass ein Rechensprachenbeschränkungen eingehalten werden. Diese Definition ist relativ abstrakt. COM -Objekte werden über eine Schnittstelle zugegriffen. Der Zweck des COM -Objekts ist es, die Freigabe von Ressourcen zu realisieren. DLL).
L vcl und com
COM ist etwas, das Microsoft zuvor stark gelobt hat, so dass es überall im Windows -Betriebssystem ist. von Tcustomadodataset erbelt, ist die Definition von Tcustomadodataset wie folgt:
Tcustomadodataset = Klasse (tdataset, iUnknown,
RecordsetEventvt)
Privat
FrecordSetObject: _recordset;
FfindCursor: _recordset;
FlookupCursor: _Recordset;
FlockCursor: _Recordset;
Frowset: Irowset;
FACESSOR: IACCESSOR;
FrowsSetFind: irowsetfind;
FHACCESSOR: HACKESSOR;
FolerecbufSize: Ganzzahl;
…
Ende;
ADO (Microsoft ActiveX Data Objects), eine Sammlung von COM -Objekten, die über den Microsoft Ole DB -Anbieter auf die Datenbank zugreifen. Zum Beispiel werden wir den Implementierungsprozess der ersten Methode von Tadoquery untersuchen:
Tadoquery.first-> tdataset.first-> tdataset.internalfirst-> tcustomadodataset.Internalfirst-> Recordset15
Tadoquery erbt aus Tcustomadodataset, und Tcustomadodataset erbt von Tdataset, Tdataset. Innernalfirst definiert eine virtuelle Methode, und Tcustomadodataset.internalfirst überschreibt sie. Tcustomadodataset.
Es ist nicht schwer festzustellen, dass Tadoquery.First letztendlich über die Schnittstelle implementiert wird, die das COM -Objekt aufruft.
L Delphi und Windows Shell
Was ist eine Windows -Shell? Die Windows -Shell ist eine Umgebung für den Windows -Schnittstellenbetrieb und bietet uns auch eine leistungsstarke Skalierbarkeit für die Programmierung. Wir verwenden Windows -Shells, um bestimmte Funktionen zu programmieren, die als Shell -Erweiterungen bezeichnet werden. Wenn Ihr Computer beispielsweise Winrar installiert hat, wird das Menü WinRAR-komprimierte Menü im Rechtsklickmenü im Ordner angezeigt. Diese Funktionen werden über Windows -Shell -Erweiterungen implementiert.
Die Windows-Shell ist COM-basiert, sodass alle Shell-Erweiterungen über die Schnittstelle implementiert werden müssen. Delphi definiert auch viele Grenzflächen zur Shell -Erweiterung in der Einheit von Source/RTL/Win/shlobj.pas im Delphi7 -Installationsverzeichnis.
In Delphis Demo -Verzeichnis gibt es ein Beispiel für die virtuelle Listansicht, die darin besteht, dass das Durchsuchen von Windows -Shell -Erweiterungen es studiert.
Das Einbettungssprach der Assemblierung in Code ist auch ein Hauptmerkmal von Delphi.
Die Montagesprache ist eine relativ niedrige Computersprache, die eng mit Hardware zusammenhängt. Daher versuchen wir, es nicht in der täglichen Programmierung zu verwenden, aber in einigen besonderen Anlässen (wie hohen Leistungsanforderungen und Direkthardware -Manipulation) kann es immer noch eine große Rolle spielen.
Das Ende.
(Wenn Sie nachdrucken müssen, geben Sie bitte die Quelle und den Autor http://haitian.myrice.com an)