Windows-API

Die Windows-API, informell WinAPI, ist der Kernsatz des Microsofts der Anwendung, Schnittstellen (APIs) programmierend, der in Windows von Microsoft Betriebssysteme verfügbar ist. Es wurde früher die Win32 API genannt; jedoch widerspiegelt der Name "Windows-API" genauer seine Wurzeln in 16-Bit-Windows und seine Unterstützung auf 64-Bit-Windows. Fast alle Windows-Programme wirken mit der Windows-API aufeinander; auf der Linie des Windows NT von OSes verwendet eine kleine Zahl (wie Programme hat früh im Windows-Anlauf-Prozess angefangen), die heimische API.

Entwickler-Unterstützung ist in der Form von Windows von Microsoft SDK verfügbar, Dokumentation und Werkzeuge zur Verfügung stellend, die notwendig sind, um Software zu bauen, die auf der Windows-API und den vereinigten Windows-Schnittstellen gestützt ist.

Übersicht

Die durch die Windows-API zur Verfügung gestellte Funktionalität kann in acht Kategorien gruppiert werden:

Base Services: Stellen Sie Zugang zu den grundsätzlichen für ein Windows-System verfügbaren Mitteln zur Verfügung. Eingeschlossen sind Dinge wie Dateisysteme, Geräte, Prozesse und Fäden und das Fehlerberühren. Diese Funktionen wohnen in, oder Dateien auf 16-Bit-Windows, und auf 32-Bit-Windows.

Fortgeschrittene Dienstleistungen

:Provide-Zugang zur zum Kern zusätzlichen Funktionalität. Eingeschlossen sind Dinge wie die Windows-Registrierung, Stilllegung/Wiederanfang das System (oder Abbruch), fangen einen Windows-Dienst an/anhalten/schaffen, führen Benutzerrechnungen. Diese Funktionen wohnen in auf 32-Bit-Windows.

Grafikgerät-Schnittstelle: Stellt Funktionalität für den outputting grafischen Inhalt zu Monitoren, Druckern und anderen Produktionsgeräten zur Verfügung. Es wohnt in auf 16-Bit-Windows, und auf 32-Bit-Windows in der Benutzerweise. GDI Kernweise-Unterstützung wird zur Verfügung gestellt, durch den direkt mit dem Grafikfahrer kommuniziert.

Benutzerschnittstelle: Stellt die Funktionalität zur Verfügung, um Schirm-Fenster und grundlegendste Steuerungen, wie Knöpfe und scrollbars zu schaffen und zu führen, Maus und Tastatur-Eingang und andere mit dem GUI Teil von Windows vereinigte Funktionalität zu empfangen. Diese funktionelle Einheit wohnt in auf 16-Bit-Windows, und auf 32-Bit-Windows. Seit Windows XP Versionen wohnen die grundlegenden Steuerungen in, zusammen mit den allgemeinen Steuerungen (Allgemeine Kontrollbibliothek).

Allgemeine Dialogfeld-Bibliothek: Stellt Anwendungen die Standarddialog-Kästen zur Verfügung, um Dateien zu öffnen und zu sparen, Farbe und Schriftart usw. wählend. Die Bibliothek wohnt in einer Datei hat 16-Bit-Windows, und auf 32-Bit-Windows aufgefordert. Es wird unter der Benutzerschnittstelle-Kategorie der API gruppiert.

Allgemeine Kontrollbibliothek: Gibt Anwendungszugang zu einigen fortgeschrittenen durch das Betriebssystem zur Verfügung gestellten Steuerungen. Diese schließen Dinge wie Status-Bars, Fortschritt-Bars, Werkzeugleisten und Etikette ein. Die Bibliothek wohnt in einer DLL Datei hat 16-Bit-Windows, und auf 32-Bit-Windows aufgefordert. Es wird unter der Benutzerschnittstelle-Kategorie der API gruppiert.

Windows Shell: Der Bestandteil der Windows-API erlaubt Anwendungen, auf die Funktionalität zuzugreifen, die durch die Betriebssystemschale zur Verfügung gestellt ist, sowie es zu ändern und zu erhöhen. Der Bestandteil wohnt in auf 16-Bit-Windows, und auf 32-Bit-Windows. Die Leichtgewichtsdienstprogramm-Funktionen von Shell sind darin. Es wird unter der Benutzerschnittstelle-Kategorie der API gruppiert.

Netzdienste: Geben Sie Zugang zu den verschiedenen Netzwerkanschlussfähigkeiten zum Betriebssystem. Seine Teilelemente schließen NetBIOS, Winsock, NetDDE, RPC und viele andere ein.

Web

Der WWW-Browser des Internet Explorers stellt auch viele APIs aus, die häufig durch Anwendungen verwendet werden, und weil solcher als ein Teil der Windows-API betrachtet werden konnte. Internet Explorer ist mit dem Betriebssystem seit Windows 95 OSR2 eingeschlossen worden, und hat verwandte Dienstleistungen des Webs Anwendungen seit Windows 98 zur Verfügung gestellt. Spezifisch wird es verwendet, um zur Verfügung zu stellen:

  • Eine embeddable WWW-Browser-Kontrolle, die in enthalten ist und.
  • Der URL-ADRESSE-Name-Dienst, zurückgehalten, der COM zur Verfügung stellt, protestiert gegen Anwendungen dafür, URL-ADRESSEN aufzulösen. Anwendungen können auch ihren eigenen URL-ADRESSE-Dressierern für andere zur Verfügung stellen, um zu verwenden.
  • Eine Bibliothek, um mit der mehrsprachigen und internationalen Textunterstützung (mlang.dll) zu helfen.
  • DirectX Verwandelt Sich, eine Reihe von Bildfilterbestandteilen.
  • XML Unterstützung (die MSXML Bestandteile, zurückgehalten).
  • Zugang zum Windows-Adressbuch.

Multimedia

Microsoft hat den Satz von DirectX von APIs als ein Teil jeder Windows-Installation seit Windows 95 OSR2 zur Verfügung gestellt. DirectX stellt einen lose zusammenhängenden Satz von Multimedia und spielenden Dienstleistungen zur Verfügung, einschließlich:

  • Direct3D für den Zugang zur 3D-Hardware hat Grafik beschleunigt.
  • DirectDraw für die Hardware hat Zugang zum 2. framebuffer beschleunigt. Bezüglich DirectX 8 ist dieser Bestandteil für Direct3D missbilligt worden, der allgemeinere Hochleistungsgrafikfunktionalität zur Verfügung stellt (weil 2. Übergabe eine Teilmenge der 3D-Übergabe ist).
  • DirectSound für die Hardware der niedrigen Stufe hat gesunden Karte-Zugang beschleunigt.
  • DirectInput für die Kommunikation mit Eingangsgeräten wie Steuerknüppel und gamepads.
  • DirectPlay als ein Mehrfachabspiellaufwerk, das Infrastruktur spielt. Dieser Bestandteil ist bezüglich DirectX 9 missbilligt worden, und Microsoft empfiehlt nicht mehr seinen Gebrauch für die Spielentwicklung.
  • DirectShow, der baut und allgemeine Multimediarohrleitungen führt. Es ist mit dem GStreamer Fachwerk vergleichbar und wird häufig verwendet, um Videos im Spiel zu machen und Mediaspieler zu bauen (Windows-Mediaspieler basiert darauf). DirectShow wird für die Spielentwicklung nicht mehr empfohlen.
  • DirectMusic - erlaubt, von MIDI Dateien, missbilligt zu spielen.

Programm-Wechselwirkung

Die Windows-API beschäftigt sich größtenteils mit der Wechselwirkung zwischen dem Betriebssystem und einer Anwendung. Für die Kommunikation zwischen den verschiedenen Windows-Anwendungen unter sich hat Microsoft eine Reihe von Technologien neben den Hauptfenstern API entwickelt. Das ist mit Dynamic Data Exchange (DDE) aufgebrochen, der durch die Gegenstand-Verbindung und das Einbetten (OLE) und später von Component Object Model (COM), Automationsgegenständen, Steuerungen von ActiveX und dem.NET Fachwerk ersetzt wurde. Es gibt nicht immer eine klare Unterscheidung zwischen diesen Technologien, und es gibt ziemlich viel Übergreifen.

Die Vielfalt von Begriffen ist grundsätzlich das Ergebnis von sich gruppierenden Softwaremechanismen, die sich auf einen besonderen Aspekt der Softwareentwicklung beziehen. Automation bezieht sich spezifisch auf das Exportieren der Funktionalität einer Anwendung oder Bestandteils (als eine API), so dass es von einer anderen Anwendung statt gerade von einem menschlichen Benutzer kontrolliert werden kann, ist.NET eine geschlossene allgemeine Methodik und Technologie, um Tisch- und in einer Vielfalt von "Gerade rechtzeitig" kompilierten Sprachen geschriebene Webanwendungen zu entwickeln.

Streifband-Bibliotheken

Verschiedene Streifbänder wurden von Microsoft entwickelt, das einige von mehr Funktionen der niedrigen Stufe der Windows-API übernommen hat, und Anwendungen erlaubt hat, mit der API auf eine abstraktere Weise aufeinander zu wirken. Microsoft Foundation Class Library (MFC) hat Windows-API-Funktionalität in C ++ Klassen gewickelt, und erlaubt so orientierter Weise von mehr Gegenstand, mit der API aufeinander zu wirken. Active Template Library (ATL) ist orientiertes Streifband einer Schablone für COM. Windows Template Library (WTL) wurde als eine Erweiterung auf ATL entwickelt, und hat als eine Leichtgewichtsalternative zu MFC bestimmt.

Auch bemerkenswert sind einige von den Angeboten von Borland. Object Windows Library (OWL) wurde befreit, um sich mit MFC zu bewerben, und hat einem ähnlichen objektorientierten Streifband angeboten. Borland hat es später zu Gunsten von Visual Component Library (VCL) missbilligt, die in Object Pascal geschrieben und sowohl in Delphi als auch in C ++ Baumeister verfügbar wird.

Der grösste Teil des Anwendungsfachwerks für Windows (mindestens teilweise) wickelt die Windows-API. So sind das.NET Fachwerk und Java, ebenfalls irgendwelche anderen Programmiersprachen unter Windows, (oder enthalten Sie) Streifband-Bibliotheken.

Der Windows-API-Codesatz für Microsoft.NET Fachwerk ist eine.Net Streifband-Bibliothek für die Windows-API.

Geschichte

Die Windows-API hat immer einen großen Teil der zu Grunde liegenden Struktur der Windows-Systeme dem Programmierer ausgestellt. Das ist im Vorteil gewesen, Windows-Programmierern sehr viel Flexibilität und Macht über ihre Anwendungen zu geben. Jedoch hat es auch Windows-Anwendungen sehr viel Verantwortung im Berühren verschieden auf niedriger Stufe, manchmal langweilig, Operationen gegeben, die mit einer grafischen Benutzerschnittstelle vereinigt werden.

Charles Petzold, Schriftsteller von mehreren Büchern über die Programmierung gegen die Windows-API, hat gesagt: "Das Original hallo Weltprogramm in Windows 1.0 SDK war so etwas wie ein Skandal. HELLO.C war ungefähr 150 Linien lange, und die HELLO.RC Quellenschrift hatte weitere noch ungefähr 20 Linien. (...) veteran LCprogrammierer haben sich häufig im Entsetzen oder Gelächter zusammengerollt, als sie auf Windows hallo Weltprogramm gestoßen sind."

Im Laufe der Jahre wurden verschiedene Änderungen und Hinzufügungen zum Windows-Betriebssystem gemacht, und die Windows-API hat sich geändert und ist gewachsen, um das zu widerspiegeln. Die Windows-API für Windows 1.0 hat weniger als 450 Funktionsanrufe unterstützt, wo in modernen Versionen der Windows-API es Tausende gibt. Jedoch, im Allgemeinen, ist die Schnittstelle ziemlich konsequent geblieben, und eine alte Anwendung des Windows 1.0 wird noch vertraut für einen Programmierer aussehen, der an die moderne Windows-API gewöhnt ist.

Eine Betonung ist von Microsoft beim Aufrechterhalten der Software umgekehrt Vereinbarkeit gemacht worden. Um zu erreichen, musste das, als es eine neue Version von Windows, Microsoft manchmal entwickelt hat, workarounds durchführen, um Vereinbarkeit mit der Drittsoftware zu erlauben, die die API der vorherigen Version auf eine undokumentierte oder sogar (programmatisch) ungesetzliche Weise verwendet hat. Raymond Chen, ein Entwickler von Microsoft, der an der Windows-API arbeitet, hat gesagt: "Ich konnte wahrscheinlich seit Monaten allein über schlechte Dinge apps schreiben tun, und was wir tun mussten, um zu veranlassen, dass sie wieder (häufig trotz sich) gearbeitet haben. Der ist, warum ich besonders wütend werde, wenn Leute Microsoft böswillig brechender Anwendungen während OS-Steigungen anklagen. Wenn eine Anwendung gescheitert hat, auf Windows 95 zu laufen, habe ich es als ein persönlicher Misserfolg genommen."

Eine der größten Änderungen, die die Windows-API erlebt hat, war der Übergang von Win16 (verladen in Windows 3.1 und älter) zu Win32 (Windows NT und Windows 95 und). Während Win32 mit Windows NT 3.1 und Win32s erlaubt Gebrauch einer Win32 Teilmenge vor Windows 95 erst als Windows 95 ursprünglich eingeführt wurde, das das weit verbreitete Halten nach Backbord von Anwendungen auf Win32 begonnen hat. Um den Übergang in Windows 95 sowohl für Außenentwickler als auch für Microsoft selbst zu erleichtern, wurde ein kompliziertes Schema der API thunks verwendet, der 32-Bit-Code erlauben konnte, in 16-Bit-Code und (für die Mehrheit von Win16 APIs) umgekehrt zu rufen. Wohnung thunks hat 32-Bit-Code erlaubt, in 16-Bit-Bibliotheken zu rufen, und das Schema wurde umfassend innerhalb der Bibliotheken von Windows 95 verwendet, um zu vermeiden, den ganzen OS zu Win32 selbst in einem Klotz zu tragen. In Windows NT war der OS reine 32 Bit (außer den Teilen für die Vereinbarkeit mit 16-Bit-Anwendungen), und nur allgemeine thunks waren für thunk von Win16 bis Win32 bezüglich Windows 95 verfügbar. Der Plattform-SDK hat sich mit einem Bearbeiter eingeschifft, der den für diese thunks notwendigen Code erzeugen konnte.

Versionen

Fast jede neue Version von Windows von Microsoft hat seine eigenen Hinzufügungen und Änderungen zur Windows-API eingeführt. Der Name der API ist jedoch konsequent zwischen verschiedenen Windows-Versionen geblieben, und Namensänderungen wurden beschränkt auf den größeren architektonisch und Plattform-Änderungen für Windows behalten. Microsoft hat schließlich den Namen der Win32 dann aktuellen API-Familie in die Windows-API geändert, und hat es in einen allumfassenden Begriff für beide vorigen und zukünftigen Versionen der API gemacht.

  • Win16 ist die API für die ersten 16-Bit-Versionen von Windows von Microsoft. Diese sind am Anfang einfach die "Windows-API" genannt geworden, aber wurden später zu Win16 umbenannt, um sie von der neueren 32-Bit-Version der Windows-API zu unterscheiden. Die Funktionen der Win16 API wohnen hauptsächlich in den Kerndateien des OS: kernel.exe (oder krnl286.exe oder krnl386.exe), user.exe und gdi.exe. Trotz der Dateierweiterung sind das wirklich dynamisch verbundene Bibliotheken.
  • Win32 ist die 32-Bit-API für moderne Versionen von Windows. Die API besteht aus Funktionen durchgeführt, als mit Win16, im System DLLs. Die Kern-DLLs von Win32 sind kernel32.dll, user32.dll, und gdi32.dll. Win32 wurde mit Windows NT eingeführt. Die Version von mit Windows 95 verladenem Win32 ist am Anfang Win32c mit dem "c" genannt geworden, der für "Vereinbarkeit" eintritt, aber dieser Begriff wurde später von Microsoft zu Gunsten von Win32 aufgegeben.
  • Win32s ist eine Erweiterung für die Familie des Windows 3.1x von Windows von Microsoft, das eine Teilmenge der Win32 API für diese Systeme durchgeführt hat. Der "s" tritt für "Teilmenge" ein.
  • Win64 ist die Variante der auf 64-Bit-Plattformen der Windows-Architektur durchgeführten API (AMD64 und IA-64.) Sowohl 32-bit-als auch 64-Bit-Versionen einer Anwendung können noch von einem einzelnen codebase kompiliert werden, obwohl einige ältere APIs, und einige der APIs missbilligt worden sind, die bereits in Win32 missbilligt wurden, wurden völlig entfernt. Alle Speicherzeigestöcke sind 64 Bit standardmäßig (das LLP64 Modell), so muss der Quellcode für die Vereinbarkeit mit 64-Bit-Zeigestock-Arithmetik überprüft und als notwendig umgeschrieben werden.

Andere Durchführungen

Das Wein-Projekt ist ein Versuch, eine Win32 API-Vereinbarkeitsschicht für den UNIX-Plattformen ähnlichen zur Verfügung zu stellen. ReactOS geht ein Schritt weiter und hat zum Ziel, eine Durchführung kompletten Windows Betriebssystem zur Verfügung zu stellen, nah mit dem Wein-Projekt arbeitend, Codewiedergebrauch und Vereinbarkeit zu fördern. DosWin32 und HX DOS-EX-ANERBIETEN sind andere Projekte, die mit der Windows-API wetteifern, die die Ausführung von einfachen Windows-Programmen von einer DOS-Befehl-Linie erlaubt. Odin ist ein Projekt, mit Win32 oben auf OS/2 wettzueifern.

Windows-Schnittstelle-Quellumgebung (oder KLUG) war ein Genehmigen-Programm von Microsoft, das Entwicklern erlaubt hat, Windows-basierte Anwendungen auf UNIX und Plattformen von Macintosh wiederzukompilieren und zu führen. KLUGE SDKs haben auf einem Wetteifer der Windows-API basiert, die auf Unix und Plattformen von Macintosh laufen konnte.

Bearbeiter-Unterstützung

Um Software zu entwickeln, die die Windows-API verwertet, muss ein Bearbeiter im Stande sein, den mit dem Microsoft spezifischen DLLs und die COM-Gegenstände zu behandeln und zu importieren. Der Bearbeiter muss entweder die Kopfball-Dateien behandeln, die die Innen-API-Funktionsnamen ausstellen, oder solche Dateien allein liefern. Für bestimmte Klassen von Anwendungen sollte das Bearbeiter-System auch im Stande sein, IDL (Schnittstelle-Definitionssprache) Dateien zu behandeln. Insgesamt sind diese Vorbedingungen (Bearbeiter, Werkzeuge, Bibliotheken und Kopfbälle) als der Microsoft Platform SDK bekannt. Seit langem war die Familie von Microsoft Visual Studio von Bearbeitern und Werkzeugen und den Bearbeitern von Borland die einzigen Werkzeuge, die das zur Verfügung stellen konnten (obwohl mindestens im Fall von Windows der SDK selbst umsonst getrennt vom kompletten IDE Gefolge, von Windows von Microsoft SDK für Windows 7 und.NET Fachwerk 4 herunterladbar ist). Heutzutage stellen die Projekte von MinGW und Cygwin auch solch eine auf der GNU-Bearbeiter-Sammlung gestützte Umgebung mit einer eigenständigen Kopfball-Dateisammlung zur Verfügung, um Verbindung gegen Microsoft DLLs möglich zu machen. LCC-Win32 ist "frei für den nichtkommerziellen Gebrauch" C von Jacob Navia aufrechterhaltener Bearbeiter. Pelles C ist ein anderer freeware C von Pelle Orinius aufrechterhaltener Bearbeiter. Freier Pascal ist eine kostenlose Software Bearbeiter von Object Pascal, der dazu fähig ist, auf der Windows-API gestützte Software zu schreiben. Das MASM32 Paket ist ein reifes Projekt, das Unterstützung für die Windows-API unter dem Makromonteur des Microsofts durch das Verwenden der Gewohnheit gemachte oder umgewandelte Kopfbälle und Bibliotheken von der Plattform SDK zur Verfügung stellt.

Windows spezifische Bearbeiter-Unterstützung ist auch für die Strukturierte Ausnahme-Berühren-Eigenschaft (SEH) erforderlich. Dieses System dient einem Doppelzweck: Es stellt ein Substrat zur Verfügung, nach dem das sprachspezifische Ausnahme-Berühren durchgeführt werden kann, und es ist, wie der Kern Anwendungen außergewöhnlicher Bedingungen wie dereferencing ein ungültiger Zeigestock oder Stapel-Überschwemmung bekannt gibt. Der Microsoft/Borland C ++ sind Bearbeiter in der Lage gewesen, dieses System zu verwenden, sobald es in Windows 95 und NT eingeführt wurde, jedoch wurde die wirkliche Durchführung undokumentiert und musste konstruiert für das Wein-Projekt und die freien Bearbeiter sein Rück-. SEH basiert auf dem Stoßen von Ausnahme-Dressierer-Rahmen auf den Stapel, dann sie zu einer verbundenen Liste hinzufügend, die im Faden lokale Lagerung (das erste Feld des Faden-Umgebungsblocks) versorgt ist. Wenn eine Ausnahme geworfen wird, wickeln die Kern- und Grundbibliotheken die Stapel-Laufen-Dressierer und Filter ab, weil auf sie gestoßen wird. Schließlich wird jede Ausnahme, die durch die Anwendung selbst unbehandelt ist, vom Verzug-Netz-Dressierer befasst, der Windows allgemeiner Unfall-Dialog knallen lässt.

Siehe auch

  • Gegenstand-Windows-Bibliothek
  • .NET-Fachwerk
  • Microsoft Foundation Class Library
  • Windows-Bibliotheksdateien von Microsoft
  • Interix
  • Windows-Vermächtnis Audiobestandteile

Referenzen

  1. Windows-Anwendung, Schnittstelle programmierend
  2. Diomidis Spinellis. Eine Kritik der Windows-Anwendung, Schnittstelle programmierend. Computerstandards & Schnittstellen, 20 (1):1-8, November 1998..

Links


Liste von Grafschaften in Colorado / Glendale, Kalifornien
Impressum & Datenschutz