Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.

Findwindow.
Getwindow.
GetWindowtext.
Setwindowtext.
Iswindow.
Movewindow.
Iswindowvisible
EnableWindow.
IswindowEnabled.
WindowFluster.
Schaufenster.
Fenster schließen.
SatzwindowPos.
Getclasslong.
SetclassLong
Getwindowlong
Setwindowlong.
GetDesktopWindow.
Getarent

Findwindow-Funktion.

funktion Findwindow (Klassenname, Windblume: PCHAR): HWND;
Die Funktion gibt den Fenstersdeskriptor zurück, der die Abfrage erfüllt (0-falls dieses Fenster nicht gefunden wird).

Klassenname. Der Name der Klasse, für die die Suche zwischen allen Fenstern des Systems erfolgt. Windhundame. Fenstertitel

Einer der Parameter kann gleich NIL sein, dann wird die Suche in einem anderen Parameter durchgeführt.
Beispiel:

GetWindow-Funktion.

funktion GetWindow (WND: HWND; PARAM): HWND
Funktion Gibt den Fensterbeschreibung zurück, der die Anforderung erfüllt.

WND. Der Deskriptor eines anfänglichen Fensters Parameter Nimmt eine der folgenden konstanten Werte an: gw_owner. Gibt den Deskriptor des Ahnenfensters zurück (0 - wenn es keinen Vorfahren gibt). gwwwndfirst. Gibt den Deskriptor des ersten Fensters (relativ zu WND) zurück. gw_hwndnext. Gibt den Deskriptor des nächsten Fensters zurück (Windows werden ohne Wiederholungen verschoben, d. H. Wenn Sie den Parameter WND nicht geändert haben, werden die Beschreibungen nicht erneut zurückgegeben) gw_child Gibt den Deskriptor des ersten Tochterfensters zurück.

Beispiel:

GetWindowText-Funktion.

funktion GETWINDOWTEXT (HWND: HWND; LPSstring: PCHAR; NMAXCount: Ganzzahl): Ganzzahl;
Die Funktion gibt den Text des Fensters zurück. Für das Formular ist der Titel für die Schaltfläche die Inschrift auf der Schaltfläche.

hwnd Der Deskriptor dieses Fensters, deren Text, dessen Sie erhalten müssen. lPString. Variable, in dem das Ergebnis platziert wird nmaxcount.

Maximale Textlänge, wenn der Text länger ist, dann ist es abgeschnitten.


Beispiel:

Iswindow feature.

funktion ISWINDOW (HWND: HWND): BOOL; Gibt true zurück, wenn das Fenster mit einem bestimmten Deskriptor ansonsten ist, und ansonsten falsch.

Hwnd Beschreiben Sie das gewünschte Fenster

Movewindow-Funktion.

Movewindow (HWND: HWND; X, Y, NWidth, NHEIHT: Ganzzahl; Breepaint: BOOL): BOOL; Verschiebt das Fenster in eine neue Position.

hwnd Der Deskriptor des verschobenen Fensters. X, y, nwidth, nhight Dementsprechend: Neu. koordinaten x, y; Neue Breite, Höhe. brepaint. Boolescher Wert, der zeigt, ob das Fenster erneut neu gezeichnet wird.

Iswindowvisible Funktion.

funktion IswindowVisible (HWND: HWND): BOOL;
Gibt true zurück, wenn dieses Fenster anscheinend ist.

hwnd Fensterkriptor.

EnableWindow-Funktion

funktion EnableWindow (HWND: HWND; gnabel: bool): bool;
Legt die Verfügbarkeit des Fensters fest (das Fenster ist nicht verfügbar, wenn es nicht auf die Ereignisse der Maus, Tastatur usw. antwortet, usw.). Analog in Delphi fähig Bauteileigenschaft. EnableWindow gibt TRUE zurück, wenn alles erfolgreich bestanden hat und falsch aufgebaut ist.

hwnd Fensterkriptor. nutzbar Boolescher Wert, der die Verfügbarkeit des Fensters definiert.


Beispiel:

Iswindowennähtefunktion.

funktion iswindowEnabled (HWND: HWND): BOOL;
Kehrt für ein angegebenes Fenster zurück: TRUE, wenn das Fenster verfügbar ist und sonst falsch ist.

hwnd Fensterkriptor.

Fensterfrompoint feature.

Fensterfrompoint (punkt: toint): hwnd;
Gibt den Fensterbeschreibung an diesem Bildschirm zurück.

Punkt Typ-Bildschirm-Punktkoordinate Tote.(Wie die Art Definition unten)

Funktion

art Toint \u003d. Aufzeichnung. X: Longint; Y: Longint; ende.;

ShowWindow-Funktion.

funktion ShowWindow (HWND: HWND; NCMDShow: Ganzzahl): BOOL; Zeigt oder versteckt ein Fenster.

hwnd Beschreiben Sie das gewünschte Fenster ncmdshow. Konstant, definieren, was mit dem Fenster erledigt wird: Sw_hide Sw_shownormal.Sw_normal Sw_showminimized. Sw_showmaximized. Sw_maximize. Sw_shownloadoctivate. Sw_show Sw_minimize Sw_showminnoaktiv. Sw_showna. Sw_restore. Sw_showdefault. Sw_max.


Beispiel:

CloseeeWindow-Funktion.

funktion CloseWindow (HWND: HWND): BOOL; stdcall;
Schließt das Fenster.

hwnd Beschreiben Sie das geschlossene Fenster.

SatzwindowPos.

funktion setWindowsPOS (HWND: HWND; HWNDinsertfolter: HWND; X, Y, CX, CY: Ganzzahl; ufflags: uint): bool; stdcall;
Setzt das Fenster in eine neue Position

hwnd Oplanting-Fenster. hwndinsertfolter. Fensterkriptor, vor der in der Liste in der Liste Z-order. Ein Fenster wird eingefügt hwndoder einer der folgenden Konstanten: Hwnd_bottom. Legen Sie das Fenster auf den unteren Rand der Liste der Z-Order Hwnd_top. Legen Sie das Fenster oben in der Z-Bestellliste X, y, cx, cy

Dementsprechend der neue Horizont. , vert. Fensterpositionen ( X, y.) sowie eine neue Breite
und Höhe ( cx, cy.)

uflags. Ein oder mehrere (getrennt) Oder.) Die folgenden Konstanten: Swp_nosize. Ändern Sie nicht die Größe des Fensters nach dem Umzug ( cx, cy. ignorieren) SWP_NOZORDER Ändern Sie nicht die Position des Fensters in der Z-Bestellliste Swp_showwindow. Machen Sie ein Fenster sichtbar, nachdem Sie sich bewegt haben Swp_hidewindow. Verstecken Sie das Fenster nach dem Bewegen Swp_NoActivate. Pass nicht das Fokusfenster, nachdem Sie sich bewegt haben Swp_nomove. Bewegen Sie das Fenster nicht (ignoriert) X, y.)

GetClassLong-Funktion.

funktion GetclassLong (HWND: HWND; NINDEX: Ganzzahl): Ganzzahl;
Diese Funktion gibt eine 32-Bit-Ganzzahl aus einem bestimmten Eingabefeld zurück. TWNDCLASEX. Angegebenes Fenster.

hwnd Fenster beschreiben nindex. Konstant, definieren, was zurückgegeben wird. Es muss eine der folgenden Schritte geben: Gcl_menuname. Gibt einen Zeiger auf eine Zeichenfolge zurück, die den Namen des in der Ressourcendatei definierten Klassen-Menüs enthält, das mit einem bestimmten Programm verbunden ist. Gcl_hbbbackgroud. Gibt den Deskriptor (Hbrush) des Hintergrunds des mit der Klasse zugeordneten Hintergrunds zurück Gcl_hcursor. Gibt den Deskriptor (HCursor) des Cursors zurück, der mit der Klasse geformt ist Gcl_hicon. Gibt den Deskriptor (HICON) des mit der Klasse zugeordneten Piktogramme zurück Gcl_hmodule. Gibt den Deskriptor des Prozesses (HModule), eingetragene Klasse zurück. Gcl_cbwndextra. Gibt die Größe des Speichers (in Bytes) zurück, ausgewählt für die Speicherung zusätzlicher Daten dieses Fensters. BESCHREIBUNG So verwenden Sie diesen Speicher, suchen Sie in der Beschreibung der Funktion Gcl_cbclsExtra. Gibt die Größe des Speichers (in Bytes) zurück, ausgewählt für die Speicherung zusätzlicher Klassendaten Gcl_wndproc. Gibt die Adresse des mit der Klasse zugeordneten Fenstervorgangs zurück. Gcl_style. Gibt Stilstil zurück (die Anwesenheit eines oder anderen Stils wird von einem ausgetretenen Betrieb überprüft Und. Verwenden der Typkonstanten cs_xxx.) Gcl_hiconsm.

beachten Sie: Wenn die Funktion einen Zeiger zurückgibt, müssen Sie die Typen mitbringen (integer -\u003e

SetclassLong-Funktion.

funktion SetclassLong (HWND: HWND; NINDEX: Ganzzahl; DWNEWLONG: LONGINT): Ganzzahl; Funktionsfunktion. Legt den entsprechenden Wert im gewünschten Feld fest.
Die Funktion gibt den alten Feldwert zurück, sodass sie korrigiert oder auf Null zurückgegeben werden kann, wenn etwas nicht so ging, wie es sollte.

hwnd Fenster beschreiben nindex. Einer der Konstanten Gcl_xxx. Aus der Funktion. Je nach Wert dieses Feldes wird das gewünschte Feld geändert.

beachten Sie Zeiger. Tippen Ganze Zahl.

Getwindowlong-Funktion.

funktion Getwindowlong (HWND: HWND; NINDEX: Ganzzahl): Longint; Gibt Informationen über ein Fenster in Form einer 32-Bit-Ganzzahl zurück.

hwnd Fenster beschreiben nindex. Ständig definieren, was zurückgegeben wird. Es muss eine von ihnen geben:
Gwl_wndproc. Gibt die Adresse des mit diesem Fenster zugeordneten Fenstervorgangs zurück. Die empfangene Adresse (nach den entsprechenden Arten von Typen) kann in der Funktion verwendet werden. CallWindowProc.. Dieser Wert Normalerweise verwenden Sie, wenn sie das vorhandene Fensterverfahren selbst ersetzen möchten, während sie nicht die Fenster verlieren, normalerweise verwenden CallWindowProc.. Gwl_hinstance. Gibt einen Anwendungsdeskriptor zurück, der beim Erstellen einer Fensterfunktion angegeben ist CreateWindowex.. Gwl_hwndparent. Gibt den Deskriptor (HWND) des übergeordneten Fensters zurück Gwl_style. Gibt den Fensterstil zurück. Concircut-Werte von Stilen werden unter Verwendung eines geschlagenen Betriebs erkannt Und. und konstant Ws_xxx. Gwl_exstyle. Gibt den erweiterten Fensterstil zurück. Concircut-Werte von Stilen werden unter Verwendung eines geschlagenen Betriebs erkannt Und. und konstant Ws_ex_xxx. Gwl_userdata. Gibt eine 32-Bit-Ganzzahl zurück, die dem Fenster zugeordnet ist (dies ist der letzte Parameter in CreateWindow oder CreateWindowEx) Gwl_id Gibt die Fenster-ID zurück (es hat nichts mit dem Fenstersdeskriptor zu tun!) Setzen Sie den Parameter HMENU für Child Windows beim Anrufen von CreateWindow oder CreateWindowEx

beachten Sie: In dem Fall, in dem die Funktion einen Zeiger zurückgibt, müssen Sie die Typen mitbringen (Ganzzahl -\u003e Zeiger). Sie können es so machen:

Setwindowlong-Funktion.

funktion Setwindowlong (HWND: HWND; NINDEX: Ganzzahl; DWNEWLONG: LONDINT): LONDINT;
Paar zu funktionieren. Ändert die Attribute eines bestimmten Fensters.
Die Funktion gibt den alten Eigenschaftswert zurück, wenn der Anruf ansonsten erfolgreich oder null übergab.

hwnd Fenster beschreiben nindex. Konstante Definition, welche Eigenschaft geändert wird. Muss einer der Konstanten sein Gwl_xxx. Aus der Beschreibung der Funktion dwnewlong Der neue Wert der von der Konstanten festgelegten Immobilie nindex.

beachten Sie: Wenn Sie Feldfelder installieren, müssen Sie den Typ mitbringen Zeiger. Tippen Ganze Zahl.

GETDESKTOPWINDOW-Funktion.

funktion GETDESKTOPWINDOW: HWND
Die Funktion gibt den Desktop-Fenster-Deskriptor (Desktop) zurück. Ohne Parameter.

Getarent

funktion GetParent (HWND: HWND): HWND;
Gibt den Favoriten des übergeordneten Fensters für das Fenster zurück hwnd.

hwnd Fenster beschreiben

Mit WinAPI können Sie verschiedene Fensterverfahren, Dialogfelder, Programme und sogar Spiele erstellen. Nehmen wir an, die Bibliothek ist eine grundlegende Programmierung, MFC, da diese Schnittstellen Add-Ons dieser Bibliothek sind. Nachdem Sie es beherrscht haben, erstellen Sie leicht Formulare und verstehen, wie es passiert.

Wird nicht in Theorie eingeführt. Beginnen wir mit dem Erstellen dieses Projekts in MVS, und am Ende des Artikels wird es ein einfaches Beispiel geben.

So. Zuerst offen Visual Studio., klicken Sie dann auf die Registerkarte Datei, dann "Projekt erstellen":

Dann wählen Sie in der Dropdown-Liste Visual C ++ Win32 aus, es gibt "Win32-Projekt". Klick es an:
Wir geben den Namen des Projekts ein, geben Sie den Pfad an und klicken Sie auf "OK". Als nächstes wird geschrieben: "Willkommen beim Win32-Anwendungs-Assistenten." Weiter klicken. Standardmäßig ist die Inschrift "leeres Projekt" nicht verfügbar. Wir müssen es stecken und sicherstellen, dass wir einen "Anwendungstyp" - Windows-Anwendung haben. Wenn alles wahr ist, klicken Sie auf "Beenden".

Wir müssen ein leeres Projekt dieses Typs haben:

Nun, jetzt lass uns anfangen zu schreiben einfaches ProgrammWas traditionell die Inschrift zeigt: "Hallo, Frieden !!!".

Natürlich müssen Sie ein "Name" -Dateidatei .cpp zum Projekt hinzufügen. Klicken Sie auf "Dateien des Quellcodes" rechtsklick Mäuse, in der Dropdown-Liste wählen Sie die Registerkarte "" Hinzufügen ", folgt" Erstellen eines Elements ... ". Infolgedessen sollte dieses Fenster angezeigt werden:

Wählen Sie die "C ++ - Datei", geben Sie einen Namen ein, klicken Sie auf "Hinzufügen". Öffnen Sie diese Datei und setzen Sie diesen Code ein (Details unten):

#Einschließen. // Header-Datei mit den API-Funktionen // Hauptfunktion - ein analoger Int-Main () in der Konsolenanwendung: Int Winapi Winmain (Hinstance Hinstance, // Die Hinstance HPREVinstance-Anwendungs-Instanz-Deskriptor, // in Win32 wird nicht verwendet LPSTR lpcmdline, // Für den Start in den Befehlszeilenmodus int ncmdshow) // Window-Anzeigemodus (// Fensterausgabefunktion mit der Schaltfläche "OK" auf dem Bildschirm (etwa Parameter später) Messagebox (NULL, L Hallo, Welt !!! " , L "Fensterverfahren", mb_ok); return null; // Geben Sie den Wert der Funktion zurück)

Das Ergebnis sollte so sein:

Lassen Sie uns nun auf dem Programmcode ausführlicher aufhören.

In der ersten Zeile verbinden wir die Windows.h-Header-Datei. Es enthält alle notwendigen "Apish" -Funktionen. Hier ist alles klar.

IM 4-7 Reihen Wir haben eine Beschreibung der Int WinPI WinMain () -Funktion.

Winapi-Qualifier ist für die WinMain-Funktion erforderlich. Erinnere dich einfach daran. WinMain - Funktionsname. Es hat vier Parameter. Der erste ist Hinstance Hinstance ( reihe 4.). Hinstance ist ein Window-Instanz-Deskriptor (dies ist ein bestimmter Fenstervorgangcode, ein Bezeichner, auf dem das Betriebssystem es von anderen Fenstern unterscheidet). Dadurch können Sie das Fenster im Arbeitsprozess der Arbeit in anderen Funktionen (dazu später) auf das Fenster verweisen, um in den Fensterparametern etwas zu ändern. Hinstance ist einer der zahlreichen Arten von Daten, die in Winapi definiert sind, wie beispielsweise int. Und Hinstance Hinstance-Aufnahme sagt uns, dass wir eine neue Hinstance-Typ-Variable mit dem Namen Hinstance erstellen.

Wir sprechen später über die Arten von Daten, sodass wir zum nächsten Parameter gehen: Hinstance HPREVINSTANCE ( reihe 5.). Wie in den Kommentaren geschrieben, wird es nicht in Win32 verwendet, da es für 3.x das Entladungssystem erstellt wird, er ist aus dem vorherigen klar, dass dies ein Fenster-Instanz-Deskriptor ist. Als nächstes haben wir einen Variablen Typ LPSTR ( reihe 6.) Mit dem Namen LPCMDline. Es wird verwendet, wenn wir ein Fenster durchführen befehlszeile Mit wichtigen Parametern. Sehr exotischer Weg, also werden wir nicht darauf verweilen.

Und der letzte Parameter: Integer, definiert den Weg, um das Fenster anzuzeigen. Bedarf an der ShowWindow-Funktion, die später beschrieben wird. Dazu können wir damit das Fenster auf den gesamten Bildschirm bereitstellen, es eine bestimmte Höhe, transparent oder auf dem Rest machen.

Gehen Sie zur MessageBox () -Funktion ( reihe 10.). Es verfügt über vier Parameter und ist zum Beispiel erforderlich, um beispielsweise Fehlermeldungen auszugeben. In diesem Fall haben wir es verwendet, um die Nachricht anzuzeigen. Im Allgemeinen ist die Beschreibung der Funktion wie folgt:

Int messagebox (HWND HWND, // Deskriptor-Parent-Fenster LPCTSTR LPTEXT, // Zeiger auf eine Zeichenfolge mit LPCTSTR lpcaption, // Zeiger auf einer Zeichenfolge mit Text-UINT UTYPE-Header); // Flags zum Anzeigen der Tasten, Piktogrammstil und andere

In unserem Fall wird der erste Parameter Null zugewiesen. Alles, weil wir keine elterlichen Fenster haben (es wird nicht von einem Programm eingeführt).

Als Nächstes haben wir zwei Variablen wie LPCTSTR: LPTEXT und LPCAPTION. Die erste meldet die Informationen, die im Fenster in das Fenster angezeigt werden. Die zweite Berichte, die er in den Header-Text in das Fenster geschrieben wird. Dies ist eine analoge CHAR * STR, aber immer noch nicht. Damit der Text korrekt angezeigt werden soll, müssen Sie den Buchstaben l vor der Zeichenfolge setzen ( Unicode. Linie).

Nun, der letzte Datentyp - uint - uint - 32-Bit intakt ohne Zeichen. Das heißt, ein analoger vorzeichenloser Int. Dieser Parameter kann einige Werte (später) übertragen werden, wodurch der Typ der Taste geändert werden kann. In unserem Fall ist dies MB_OK - bedeutet, dass das Fenster eine Schaltfläche mit der Inschrift "OK" und die entsprechende Aktion erstellt, wenn sie gedrückt werden (Schließen der Anwendung).

IM reihe 11.wir geben den Wert der Funktion zurück, da es keinen Typ ungültig ist.

So ist die allgemeine Idee von Winapi jetzt. In den folgenden Abschnitten fortgesetzt.

Zu guter Letzt! Zu guter Letzt! Heute beginnen wir mit dem Erstellen eines vollwertigen Windows-Fensters. Auf Wiedersehen Elende Konsole !!!

Übrigens sollten Sie bereits wissen, wie man C ++ -Syntax kennen lässt, mit Verzweigungen und Zyklen zusammenarbeiten kann, was die Funktion der Funktionen funktionieren. Wenn Sie mit dem Seekampf fertig haben, können Sie davon ausgehen, dass Sie alle alles gelernt haben.

Ungarisches Aufzeichnungsformular

Der gesamte Code, den wir in Winapi treffen werden, ist in ungarischer Uniform geschrieben. Dies ist eine solche Vereinbarung über den Schreibcode.

Gleichzeitig wird der Anfangsbuchstabe des Typs vor dem Variablennamen installiert. Alle Wörter in den Namen von Variablen und Funktionen beginnen mit einem Großbuchstaben.

Hier sind einige Präfixe:

b - B - Variable Bool.
L - Variablentyp lange Ganzzahl.
W - aus Word (WORD) - 16 Bits. Typvariable Unsigniert kurz.
DW - vom doppelten Wort (doppeltes Wort) - 32 Bits. Variablentyp unsigniert lang.
SZ - String terminiert Null (String terminiert Null). Nur die übliche Zeichenfolge, die wir ständig benutzt haben.
P oder LP - Zeiger (von Zeiger). LP (von Long Pointer) - Diese Zeiger, die aus der Vergangenheit umgeschaltet wurden. Jetzt bedeutet LP und P dasselbe.
H ist der Deskriptor (vom Griff).

Zum Beispiel wird der Zeiger so genannt:

void * pdata;

Diese Form der Aufnahme wird von Microsoft verwendet. Viele kritisieren diese Methode zur Benennung von Variablen. Solche Dinge (kodierende Vereinbarungen) in großen Unternehmen sind jedoch von entscheidender Bedeutung.

Lassen Sie mich daran erinnern, dass die Kennzeichner der Konstanten normalerweise nur aus Großbuchstaben bestehen: WM_DESTROY. WM_DESTOY ist 2, die Konstante ist durch Definieren definiert.

Darüber hinaus verwendet Winapi viele neu definierte Typen. Hier auf dieser Seite - http://msdn.microsoft.com/de-us/library/aa383751(vs.85).aspx können Sie Beschreibungen aller Arten von Windows (in Englisch) finden.

Und noch etwas, was wir nicht zerlederten. Zeiger sind oft zugewiesen nullwert.. Betrachten Sie, dass es einfach 0 ist, und die Zeiger, die Null (Null) zugewiesen sind, geben Sie niemandenabschnitt an.

Windows-API (Winapi)

Alle Windows-Programme verwenden eine spezielle WinAPI-Programmierschnittstelle. Dies ist ein Satz von Funktionen und Strukturen in C-Sprache, dank dessen Programm mit Windows kompatibel wird.

Windows API verfügt über große Betriebssystemfunktionen. Sie können sogar sagen - unbegrenzt.

Wir werden nicht einmal einen Prozent aller Winapi-Funktionen berücksichtigen. Zunächst wollte ich mehr Material nehmen, aber es würde zu viel Zeit dauern, und auf den Winapi-Sumpf, vor DirectX "und wir würden uns in ein paar Jahren knallen. Beschreibung Winapi nimmt zwei Lektionen (einschließlich dieses). Wir werden Betrachten Sie nur den Rahmen der Anwendung unter Windows.

Das Programm unter Windows ist genau das gleiche wie das DOS-Programm hauptfunktion. Hier wird diese Funktion als Winmain bezeichnet.

WinMain-Funktion.

Das Programm unter Windows besteht aus den folgenden Teilen (all dies geschieht in WinMain):

Erstellen und registrieren Sie die Fensterklasse. Verwechseln Sie keine C ++ - Klassen. Winapi ist in c geschrieben, es gibt keinen Unterricht im üblichen Verständnis dieses Wortes.
Erstellen eines Programmfensters.
Der Hauptzyklus, in dem Nachrichten verarbeitet werden.
Verarbeitung von Programmnachrichten im Fensterverfahren. Das Fensterverfahren ist eine herkömmliche Funktion.
Diese vier Elemente sind die Basis des Windows-Programms. Während dieser und der nächsten Lektion werden wir das alles detailliert analysieren. Wenn Sie in der Programmbeschreibung verwechselt werden, gehen Sie zu diesen Elementen zurück.

Jetzt analysieren wir das alles detailliert:

Winapi: WndClass-Struktur

Zunächst müssen Sie die WndClass-Strukturvariable erstellen und ausfüllen, und basierend darauf, um die Fensterklasse zu registrieren.

So sieht diese Struktur aus wie:

code in C ++ typedef struct (uint style; // wndproc lpfnwndproc fenster stil; // Zeiger auf das int cbclsExtra-Fensterverfahren; // zusätzliche Bytes nach der Klasse. Setzen Sie immer 0 int cbwndextra; // zusätzliche Bytes nach einer Instanz des Fensters. Setzen Sie immer 0 Hinstance Hinstance; / / Application Instanz. Als Parameter in WinMain Hicon Hicon übertragen; // HCursor HCursor-Anwendungssymbol // HBRUSH HBRBRACKGRUND-Anwendungscursor; // LPCTSTR LPCSMENUNAME Menüfarbe; // LPCTSTR-Menüname LPCTSNAME; // Klassenname) WndClass , * Pwndclass;

Die WndClass-Struktur in WinAPI bestimmt die grundlegenden Eigenschaften des erstellten Fensters: Symbole, Ansicht des Mauszeigers, gibt es ein Menü mit dem Fenster, in dem das Antrag zum Fenster gehört ...

Nachdem Sie diese Struktur ausgefüllt haben, können Sie eine Fensterklasse anhand dessen registrieren. Wir sprechen nicht von solchen Klassen wie in C ++. Vielmehr können wir davon ausgehen, dass die Fensterklasse eine solche Vorlage ist, Sie haben es im System registriert, und jetzt können Sie auf der Grundlage dieser Vorlage mehrere Fenster erstellen. Alle diese Windows verfügen über die Eigenschaften, die Sie in der Strukturvariablen WndClass definiert haben.

Winapi: CreateWindow-Funktion

Nach der Registrierung der Fensterklasse basiert er sich auf dem Hauptanwendungsfenster (wir haben jetzt den zweiten Artikel gestartet). Dies erfolgt mit der CreateWindow-Funktion. Es hat den folgenden Prototyp:

code in C ++ HWND CreateWindow (LPCTSTR LPClassName, // LPCTSTR lpwindostrame Klassenname, // Fenstername (in der Header angezeigt) DWORD DWSTYLE, // STYLE INT X, // Horizontale Koordinate von der linken Kante des INT-Bildschirms, // Vertikalkoordinaten Die Oberkante des Int Nwidth-Bildschirms, // Die Breite des Int NHEATHT-Fensters, // Höhe des HWND-Hwndparent-Fensters, // Übergeordnetes Fenster HMENU HMENU, // Deskriptor Hinstance Hinstance-Menü, // Instanz der LPVOID-LPPARAM-Anwendung // Parameter; immer null setzen);

Wenn die grundlegenden Eigenschaften des Fensters in der Fensterklasse (WndClass-Struktur) eingestellt sind, sind hier für jedes Fenster genauer gesagt: Fenstergröße, Koordinaten ...

Diese Funktion gibt den Fensterkriptor zurück. Mit dem Deskriptor können Sie auf das Fenster zugreifen, es ist ungefähr als Identifizierer.

Bitte beachten Sie, dass es viele neue Typen gibt. In der Tat sind sie alle alten, einfach neu definiert. Zum Beispiel: HWND ist eine Neudefinition der Art des Griffs, was wiederum die Neudefinition von PVOID ist, die wiederum ungültig ist *. Wie tief die Wahrheit begraben hat! Aber noch Typ HWND ist ein Zeiger auf nichtig.

Das Fenster besteht aus mehreren Teilen. In fast jedem Programm sehen Sie: den Fenstertitel, das Systemmenü (Wenn Sie in der linken Oberseite des Anwendungssymbols auf das Anwendungssymbol klicken), arbeiten drei Systemtasten mit dem Fenster zusammen: Zusammenbruch, Bereitstellen auf Vollbildschirm und schließen. Fast immer in der Anwendung gibt es ein Menü. Dies ist nur das letzte, was wir definitiv nicht tun werden. Und natürlich belegt der größte Teil des Fensters den sogenannten. Der Clientbereich, in dem der Benutzer normalerweise ist und funktioniert.

Es betrifft das Fensterregime. Für ziemlich lange Zeit üben wir mit Diectx im Fenster - wir verwenden keinen Vollbildmodus.

Nachrichtenverarbeitung (Nachrichtenhandling)

Die Hauptunterschied von allen unseren vorherigen Programmen von Windows-Programmen besteht darin, Nachrichten zu verarbeiten.

Wenn zum Beispiel ein Benutzer einige Taste auf der Tastatur drückt, wird eine Nachricht generiert, dass der Schlüssel gedrückt wurde. Dann tritt diese Meldung in die Anwendung ein, die aktiv war, wenn der Benutzer den Schlüssel drückte.

Hier hatten wir ein Ereignis (Ereignis) - der Schlüssel wurde gedrückt.

Ein Ereignis kann sein: Bewegen Sie den Mauszeiger, um den Fokus der Anwendung zu ändern, indem Sie den Tastaturschlüssel drücken, das Fenster schließen. Es gibt viele Ereignisse. Höchst! Während eines zweiten können Dutzende von Ereignissen im Betriebssystem auftreten.

Wenn also ein Everight auftritt, erstellt das Betriebssystem eine Nachricht: Eine solche Taste wurde gedrückt, die Koordinaten des Mauszeigers haben sich geändert, ein neues Fenster hat geöffnet.

Nachrichten können sowohl das Betriebssystem als auch die verschiedenen Anwendungen erstellen.

Die Nachricht ist eine Struktur und sieht so aus:

code in C ++ Typedef struct tagmsg (hwnd hwnd; // ein Fenster, das diese Nachricht verwendet wird Cursor) msg;

Bitte beachten Sie, wie die Strukturen mit dem TypeDef neu definiert werden.

Erschaffen diese Struktur Sie können den folgenden Code verwenden:

code in C ++ msg.messgae \u003d\u003d 2; // Diese beiden Linien sind gleichwertig, da msg.message \u003d\u003d wm_destroy; // wm_destroy constant ist gleich zwei

Hier enthält das Feld, das den Nachrichtencode enthält (Nachrichtenname, mit der WM_DESTROY-Konstante verglichen. WM - von Windows-Nachricht (Windows-Nachricht). WM_DESTROY ist eine Nachricht, die erzeugt wird, wenn das Fenster geschlossen ist (Zerstörung - Zerstörung).

Nachrichtencodes werden mit Konstanten definiert und verfügen über das Präfix WM_: WM_CLOSE, WM_CREATE usw.

Die MSG-Struktur trifft HWND-Typ - vom Fenstergriff (Fensterbeschreibung oder Fensterbeschreibung). Dies ist eine Sache, die das Fenster "beschreibt. Dies ist so etwas wie ein Bezeichner (Fenstername).

Erinnern Sie sich an dieses Wort - Griff (Deskriptor, Deskriptor). In Windows wird dieses Konzept sehr oft verwendet. Fast alle Arten von Fenstern, die mit H-Deskriptoren beginnen: Der Deskriptor des Symbols, des Schriftkriptors, der Beschreibung der Anwendungsinstanz. Sie sind dreißig, soweit ich mich erinnere.

Alle Interaktionen zwischen Windows-Anwendungen werden mit diesen am meisten gewünschten Windows (HWND) durchgeführt.

Es gibt einen weiteren wichtigen Deskriptor - einen Anwendungsdeskriptor (Hinstance - der erste WinMain-Parameter) ist eine eindeutige Kennung der Anwendung, dank dessen das Betriebssystem zwei verschiedene Programme nicht verwechseln kann. Es ist ungefähr wie ein Barcode. Wir werden es später ansehen.

Jedes Mal, wenn der Benutzer einige Aktion tätigt, wird eine Meldung erstellt und gefüllt: Ein Fensterbeschreibung wird angegeben, wobei diese Meldung erhalten werden soll, der Nachrichtenkennung angegeben ist. Die Parameter sind gefüllt, die Zeit (Strom) ist gefüllt und die Koordinaten von Der Mauszeiger ist gefüllt (siehe Struktur).

Danach wird diese Nachricht in der Nachrichtenwarteschlange platziert. betriebssystem. Wenn die Warteschlange auf unsere Nachricht erreicht ist, wird es vom gewünschten Fenster gesendet (Windows weiß, welches Fenster jede Nachricht über die Deskriptoren schickt). Wenn eine Nachricht in der Anwendung ankommt, wird es in der Nachrplatziert. Sobald es darum geht, wird es verarbeitet.

Wenn der Benutzer eine Aktion vorgenommen hat (ein Ereignis eingetragen und eine Nachricht erstellt wurde) und dem Moment, in dem das Programm auf diese Aktion reagierte (die Nachricht wurde vom Programm verarbeitet) Es gibt viele Ereignisse. Schließlich können sowohl in der Windows-Message-Warteschlange als auch in der Nachrichtenwarteschlange der Anwendung viele Nachrichten sein. Im ersten Fall können wir im zweiten Fall mindestens etwa mehreren Hunderten sprechen.

Fensterverfahren (Fensterverfahren - WNDPROC)

Wir fahren ab dem Moment an, in dem die Nachricht die Nachrtraf. Sobald es er erreichte, wird es verarbeitet. Um Nachrichten zu handhaben, sollte jedes Programm eine spezielle Funktion existieren - ein Fensterverfahren. Es wird normalerweise als WNDPROC (vom Fensterverfahren) bezeichnet. Aufruf des Fenstervorgangs befindet sich im Hauptprogrammzyklus und wird bei jeder Iteration des Zyklus durchgeführt.

Nachrichten (in Form von Strukturvariablen msg) fallen in dieses Feature In Form von Parametern: Window-Deskriptor, Nachrichtenkennung und zwei Parameter. Bitte beachten Sie, dass die Zeit- und PT-Felder nicht an das Fensterverfahren übertragen werden. Das heißt, die Nachricht ist bereits "Demontiert".

Innerhalb des Fenstervorgangs befindet sich der Switch-Zweig, in dem die Nachrichtenkennung überprüft wird. Hier ist ein Beispiel für ein einfaches Fensterverfahren (es ist voll funktionsfähig):

code in C ++ // Achten Sie nicht auf HRESULT und __stdcall. Wir werden sie später ansehen, hresult __stdcall WndProc (HWND HWND, UINT-Nachricht, WPARAM WPARAM, LPARAM LPARAM) (Switch (Meldung) (Meldung) (Case WM_PAINT: // Nachrichtenverarbeitungscode WM_PAINT RETURN 0; CASE WM_DESTROY: // Nachrichtenverarbeitungscode WM_DESTROY RETURN 0;) // Handler Alle anderen Nachrichten)

Und der letzte ist der Hauptzyklus. Er ist sehr einfach. Jede Iteration des Zyklus wird von einer Anweüberprüft. Wenn in der Nachrichtenwarteschlange eine Nachricht vorhanden ist, wird es aus der Warteschlange herausgezogen. Dann wird das Fensterverfahren in dem Zykluskörper aufgerufen, um die von der Warteschlange aufgenommene Nachricht zu behandeln.

Hier im Allgemeinen ist alles heute. Es ist bereits klar, dass das Winapi-Programm von dem Programm unter DOS viel komplizierter ist. Wie ich bereits oben geschrieben habe, analysieren wir in der nächsten Lektion den Code des Arbeitsprogramms.

Erstellen Sie ein neues Projekt als Übung. Wählen Sie im neuen Projektfenster die Vorlage (Vorlage) - Win32Project (bisher haben wir ausgewählt Win32 Console-Anwendung). Stellen Sie in einem der folgenden Fenster das Kontrollkästchen "Leeres Projekt nicht auf, und IDE generiert ein Programm-Werkstück.

Wenn Sie den Dateicode_name sorgfältig ansehen. CPP, dann finden Sie alle Dinge, die wir diskutiert haben: Die MSG-Strukturvariable, die Füllung in der WndClass-Struktur, erstellt ein Fenster mit der CreateWindow-Funktion, dem Hauptprogrammzyklus. Darüber hinaus ist die WNDPROC-Funktion in der Datei definiert. Es dauert die Verarbeitung mehrerer Nachrichten in den Wechselzweigen: WM_COMMAND, WM_PAINT, WM_DESTROY. Finden Sie das alles in der Datei.

Darüber hinaus haben wir uns das Programm angesehen, das viel zusätzlicher Code enthält. In der nächsten Ausgabe werden wir den Programmcode ansehen, in dem alles übertrieben ist. Es ist viel einfacher und klarer, was die IDE erzeugt.

C Winapi ist der Hauptsatz von Microsoft-Softwareschnittstellen (API), die in Betriebssystemen verfügbar sind. Frühe Version Gewinne Win32 API.

Einführung

C Winapi ist eine Anwendungsprogrammierschnittstelle, mit der Windows-Anwendungen erstellt werden. Um mit der Arbeit zu beginnen, muss der Novice-Benutzer die bisher als Plattform SDK bekannten SDK-Fenster herunterladen.

Enthält Header, Bibliotheksdateien, Muster, Dokumentation und Werkzeuge, die zur Entwicklung von Anwendungen verwendet werden. API für C- und C ++ Programmiersprachen. Dies ist der direkteste Weg, um Anwendungen im Betriebssystem des Unternehmens zu erstellen.

C Winapi kann in mehrere Bereiche unterteilt werden:

    grundversorgung;

    sicherheit;

  • benutzeroberfläche;

    multimedia;

    windows-Shell;

    netzwerkdienste.

Basisdienste bieten Zugriff auf große Ressourcen. Dazu gehören Funktionen C Winapi, Dateisysteme, Geräte, Prozesse, Streams, Registrierungs- und Fehlerbehandlung. Der Sicherheitsbereich enthält Schnittstellen, Objekte und andere Programmierelemente für die Authentifizierung, Authentifizierung, Kryptographie und andere sicherheitsbezogene Aufgaben. Das Grafik-Subsystem sorgt für die Funktionalität der Anzeigen von Grafikinhalten auf Monitoren, Druckern und anderen Ausgabegeräten. Die Benutzeroberfläche bietet Funktionalität zum Erstellen von Fenstern und Steuerelementen.

Multimedia-Komponente bietet Werkzeuge zum Arbeiten mit Video-, Ton- und Eingabegeräten. Die Funktionen der Shell-Schnittstelle ermöglichen Anwendungen, auf die von der Hülle des Betriebssystems bereitgestellten Funktionen zuzugreifen. Netzwerkdienste bieten Zugriff auf Netzwerkfunktionen von Windows.

Bauteile

Beim Erstellen von Winapi C können die Basisfunktionen von Windows APIs in sieben Kategorien angeordnet werden. Betrachten Sie jeden von ihnen detaillierter.

Basisdienste bieten Zugriff auf grundlegende Systemressourcen in Windows. Beispiele: dateisystem, Peripheriegeräte, Prozesse, Zugriff auf das Systemregister und ein Ausnahmemanagementsystem. Diese Funktionen werden in Kernel.exe-Dateien, krnl286.exe oder krnl386.exe für 16-Bit-Systeme und Kernel32.dll und Advapi32.dll für 32-Bit-Systeme gespeichert.

Die grafische Schnittstelle bietet Zugriff auf Ressourcen, die auf Monitoren, Druckern und anderen peripheren Geräten angezeigt werden. In der GDI.EXE-Datei auf 16-Bit-Systemen und GDI32.DLL in 32-Bit-Systemen gespeichert.

Die Benutzeroberfläche ist dafür verantwortlich, die Hauptelemente anzuzeigen und zu verwalten, z. B. Schaltflächen und Bildlaufstreifen, Informationen über die Tastatur und die Maus sowie zugehörigen Funktionen. Diese Funktionen werden in der User.exe-Datei in 16-Bit-Systemen und User32.dll compactl32.dll in 32-Bit-Systemen gespeichert. Ausgehend von der XP-Version wurden die Steuerelemente in comctl32.dll gruppiert.

Allgemeine Dialoge - Anzeigedaten zum Öffnen und Speichern von Dateien, wählen Farbe und Schriftart. Sind in der comdlg.dll-Datei auf 16-Bit-Systemen und comdlg32.dll in 32-Bit-Systemen.

Windows-Shell ist eine WinAPI-Komponente, mit der Anwendungen auf die von der Hülle des Betriebssystems bereitgestellten Funktionen zugreifen können.

Netzwerkdienste ermöglicht den Zugriff auf verschiedene Betriebssystemnetzfunktionen. Seine Teilkomponenten umfassen NetBIOS, WinSock, RPC. In alten Versionen - Netdde.

Ausführung

Win16, Win32 und Win32s sind Standard-Komponentensätze, mit denen Anwendungssoftware die Funktionen verschiedener Windows-Betriebssysteme verwenden können.

Win32, Win16-Nachfolger, wurde 1993 in 32-Bit-Produkten der Windows-Familie wie Windows NT, 2000, 95 eingeführt. programmoberfläche Um drei umgesetzt software-Bibliotheken: Kernel32.dll, user32.dll und gdi32.dll2. Die gleichen Win32-Funktionen sind in allen Windows-Produkten erhältlich, und je nach Produkt kann die Verwendung bestimmter Funktionen zu Dienstfehler führen.

Zu Win32-Funktionen gehören die Interaktion zwischen Programmen, Prozessmanagement, Computernetzwerken, Dateien, Druckern, Servern und Kommunikationsports.

Spezifikation

C winapi ist eine abstrakte Prografür den Betrieb windows-Systeme. Es besteht aus Anzeigen von Funktionen, Assoziationen, Strukturen, Datentypen, Makros, Konstanten und anderen Programmierelementen. Winapi wird von der Hauptseite beschrieben und in Windows C-Schlagzeilen. Die offizielle Implementierung von WinAPI-Funktionen ist in dynamischen Bibliotheken (DLL): Zum Beispiel kernel32.dll, user32.dll, gdi32.dll oder shell32.dll im Systemverzeichnis. Es gibt Drittanbietern Implementierungen der Windows-API: Zunächst das Weinprojekt und das Reaktionsprojekt.

Windows-API ist ein dynamisches Objekt. Die Anzahl der Funktionen wächst ständig mit jedem neue Version OS und neue Update-Pakete. Es gibt auch wichtige Unterschiede zwischen Serverversionen und Desktop-Versionen des Betriebssystems. Einige Funktionen werden nicht offiziell dokumentiert.

Pelles C.

Pelleses C ist ein kostenloses Programm und das beste C-Compiler und eine integrierte Entwicklungsumgebung (IDE) für C-Programmiersprache. Unterstützt 32-Bit-Fenster (X86) und 64-Bit-Fenster (x64). Implementiert sowohl C99-Standards als auch C11. Pelles C verfügt über einen eingebauten Ressourcen-Editor, rasterbild, Icon und Editor-Cursor und Herausgeber von Hexadezimal-Dumps. Es ist vom schwedischen Entwickler Pelle Orinius entworfen. Der Name des Compilers trägt den Namen seines Autors. Kommt mit einem SDK, sodass der Programmierer sofort Anwendungen ohne weitere Installation erstellen kann.

Fehlersucharchitektur.

Um Windows-API-Programme erstellen zu können, müssen Sie Microsoft-Erweiterungen aktivieren. Standardmäßig werden sie ausgeschaltet, und deshalb zeigt der Compiler die folgende Fehlermeldung an, die als Beispiel mit Winapi mit einer gebrochenen Struktur dient: Fatal-Fehler # 1014: #Error: "Keine Zielarchitektur" ("Keine Zielarchitektur"). Um Microsoft-Erweiterungen zu aktivieren, gehen Sie zu den Projektparametern und wählen Sie die Registerkarte Compiler aus. Aktivieren Sie auf dieser Registerkarte Aktivieren Sie das Kontrollkästchen "Microsoft Extensions aktivieren".

MSDN.

Es ist ein zentrales Portal für Windows-Entwicklung. Dies ist eine große Sammlung von Materialien, die mit der Entwicklung von Anwendungen mit Microsoft-Tools zusammenhängen. Dies ist die vollständigste Basis sowie die Dokumentation für die Entwicklung von Desktop-Anwendungen und der Windows-API-Liste.

Anwendungs-DLL in Winapi C

Die allgemeine Verwaltungsbibliothek bietet Zugriff auf die erweiterten Betriebssystemfunktionen, z. B. Statuszeichenfolgen, Ausführungsanzeigen, Symbolleiste und Registerkarten. Diese Befehle befinden sich in der Commctrl.dll-Bibliothek in 16-Bit-Systemen und compl32.dll und mit der Benutzeroberfläche gruppiert.

DLL ist das Format einer dynamischen Bibliotheksbibliothek, mit der mehrere Codes und -verfahren gespeichert werden sollen windows-Programme. DLL-Dateien wurden so erstellt, dass mehrere Programme ihre Informationen gleichzeitig verwenden könnten, um den Speicher zu speichern. Ermöglicht dem Benutzer, die Codierung mehrerer Anwendungen gleichzeitig zu bearbeiten, ohne sie zu ändern. DLL-Bibliotheken. Sie können mit MSIL Disassembler oder DLL für lib 3.00 in statische konvertieren.

Winapi als Anfür Windows bietet viele leistungsstarke Funktionen, mit denen Sie Ihre Programme erstellen können, die mit der einfachen Dateiverarbeitung beginnen und mit der grafischen Schnittstelle zum Programmieren von Gerätetreibern mit niedrigem Niveau endet.

Bevor Sie mit der Programmierung in WinAPI starten, müssen Sie die Umgebung für den Code in Windows konfigurieren. Da dies keine Linux-Distribution ist, hat er keinen eingebauten Compiler, um Anwendungen zu erstellen. Berücksichtigen Sie die folgenden Optionen für den Kompilieren von Code:


Für Windows ist ein Gerät verfügbar, das Dokumentation und Tools bereitstellt, mit denen Entwickler Software mithilfe von APIs und verwandten Technologien erstellen können.

WindowsAPI-Anwendungs-Programmierschnittstelle (AnwendungsprogrammingInterface) ist eine Systemprogrammierschnittstelle im Benutzermodus für eine Windows-Betriebssystemfamilie. Vor der Freigabe von 64-Bit-Versionen von Windows wurde die Programmschnittstelle für 32-Bit-Versionen von Windows-Betriebssystemen als Win32-API bezeichnet, so dass er von dem anfänglichen 16-Bit aus unterschieden werden kann windows-Version API (die als Programmierschnittstelle für die anfänglichen 16-Bit-Versionen von Windows diente).

Die Windows-API besteht aus mehreren tausendgenannten Funktionen, die in die folgenden Hauptkategorien unterteilt sind:

  • Basisdienste.
  • ServicEinkomponenten (Komponentenservices).
  • Dienstleistungen benutzeroberfläche (Benutzeroberflächendienste).
  • Grafiken- und Multimedia-Services.
  • Messaging I. zusammenarbeit Messaging und Zusammenarbeit.
  • Vernetzung.
  • Internetdienste.

Beschreibung WindowsAPI ist in der Dokumentation für die Set von Entwicklungswerkzeugen zu finden software - WindowsSoftwareDevelopmentkit (SDK). Diese Dokumentation ist unter www.msdn.microsoft.com verfügbar. Es ist auch mit allen Ebenen des Abonnements in das MicrosoftDevelEnetwork (MSDN) -Netzwerk aktiviert, das für Entwickler entwickelt wurde.

Microsoft. Nettorahmen. Besteht aus einer Klassenbibliothek namens Framework Class Library (FCL) und einer kontrollierten Implementierungsumgebung der Common Language Runtime (CLR). CLR verfügt über Funktionen der rechtzeitigen Zusammenstellung, Prüfungstypen, Montage von Müll und den Zugriff auf den Code. Durch das Angebot dieser Funktionen bietet CLR ein Entwicklungsumfeld, das die Leistung der Programmierer und die Verringerung der häufigsten Programmierfehler verbessert.

Die CLR-Umgebung ist als klassischer COM-Server implementiert, der Code in der Standard-Windows-DLL-Bibliothek befindet, die im Benutzermodus arbeiten soll. In der Tat werden alle Komponenten .NET Framework als implementiert standardfenster Benutzermodus DLLs auf den nicht verwalteten Windows-API-Funktionen auferlegt. (Keine der Komponenten des.NET Frameworks funktioniert nicht im Kernel-Modus.) Die Beziehung zwischen diesen Komponenten ist in der Figur dargestellt.

Dienstleistungen, Funktionen und Standardprogramme.

Einige Begriffe in Windows-Benutzer- und Softwaredokumentation in verschiedenen Kontexten haben verschiedene Werte. Beispielsweise kann der Wortdienst auf die Standard-Subroutine im Betriebssystem, dem Gerätetreiber oder dem Wartungsprozess beziehen. Was genau bedeutet solche oder andere Begriffe, die in der folgenden Liste angezeigt werden:

  • Windows-API-Funktionen. Doconted, als Subroutinen in WindowsAPI genannt. Beispielsweise, CreateProcess, Createfile und GetMessage.
  • Eigene Systemdienste (oder Systemanrufe). Inochannte Basisdienste im Betriebssystem, die beim Arbeiten im Benutzermodus aufgerufen wurden. Zum Beispiel ist NTCreateDuserProcess ein interner Dienst, der windows-Funktion CreateProcess fordert auf, einen neuen Prozess zu erstellen.
  • Kernel-Support-Funktionen (oder Subroutine). Unterprogramme innerhalb des Windows-Betriebssystems, die nur aus dem Kernel-Modus verursacht werden können. Beispielsweise ist exArcatePoolWithTag ein Unterprogramm, das durch Gerätetreiber verursacht wird, um den Speicher von systemdynamisch verteilten Windows-Fenstern (Becken) hervorzuheben (Becken).
  • Windows-Dienste. Prozesse, die vom Service-Management-Manager (WindowsServiceControlManager) gestartet wurden. Beispielsweise startet der Task-Manager-Dienst in Form eines Prozesses, der in dem Benutzermodus ausgeführt wird, in dem der Befehl at Befehl unterstützt wird (ähnlich wie Unix-AT- oder CRON-Befehle).
  • DLL-Bibliotheken (Dynamic-Link-Bibliotheken - dynamisch verbundene Bibliotheken). Ein Satz von als Subroutines, das in Form einer Binärdatei zusammenhängt, die in den dynamischen Modus der Anwendungen geladen werden kann, die diese Unterprogramme verwenden. Als Beispiel können Sie msvcrt.dll (Ausführungszeitbibliothek für Anwendungen in c) und kernel32.dll mitbringen (eines der Windows-API-Subsystembibliotheken). DLL-Bibliotheken werden von Komponenten weit verbreitet und windows-Anwendungendas funktioniert im Benutzermodus. Der Vorteil von DLL-Bibliotheken im Vergleich zu statischen Bibliotheken besteht darin, dass sie unmittelbar mit mehreren Anwendungen verwendet werden können, und Windows bietet Windows im Speicher von nur einer Kopie des DLL-Codes für Anwendungen, in denen es Links zu dieser Bibliothek gibt. Es sei darauf hingewiesen, dass unangenehme .NET-Baugruppen als DLL-Bibliotheken kompiliert werden, jedoch ohne exportierte Unterprogramme. CLR-Analysen kompilierte Metadaten, um auf die entsprechenden Typen und Elemente der Klassen zuzugreifen.

Geschichte Win32 API.

Interessanterweise wurde Win32 nicht als Quellprogrammierschnittstelle für das System geplant, das damals Windows NT genannt wurde. Da das Windows NT-Projekt als Ersatz für OS / 2-Version 2 gestartet wurde, war die anfängliche Programmierschnittstelle 32-Bit-OS / 2-PräsentationManagerAPI. Aber ein Jahr nach dem Start des Projekts nahm eine Explosion zum Verkauf ab Microsoft Windows. 3.0. Als Ergebnis änderte Microsoft die Richtung und machte Windows NT zum zukünftigen Ersatz der Familie windows-Produkteund nicht ersetzen OS / 2. In dieser Hinsicht war es erforderlich, die Windows-API-Spezifikation auszuarbeiten - davor, in Windows 3.0, die API existierte nur in Form einer 16-Bit-Schnittstelle.

Obwohl in Windows-API die Einführung vieler neuer Funktionen in Windows 3.1 in Windows 3.1, entschied, dass Microsoft eine neue API mit den Namen, Semantiken und verwendeten Datentypen mit einer 16-Bit-Windows-API ermöglicht, um die Übertragung der Übertragung zu erleichtern Bestehende 16-Bit-Windows-Drucke in Windows NT. In der Tat erklärt dies tatsächlich, dass viele Funktionen und Schnittstellennamen inkonsistent erscheinen können: Es war notwendig, die Kompatibilität sicherzustellen neue Fenster API mit alter 16-Bit-Windows-APIs.

Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.