Die Header-Datei Windows.h für die Win32-API ist eine riesige Include-Datei, die Hunderttausende neuer Makros, Strukturen und Funktionen hinzufügt.
Ziel dieses Projekts ist es, die Windows.h-Datei zu modularisieren, sodass sie nur das enthält, was Sie benötigen.
Alle Beiträge sind willkommen . Wenn wir dies zu einer Crowdsourcing-Aktion machen, kann dies viel schneller erledigt werden. Sollten Funktionen fehlen, können Sie diese gerne hinzufügen und einen Pull-Request einreichen. Ich werde sie so schnell wie möglich zusammenführen
Das einzige Verzeichnis von Interesse ist include
. Kopieren Sie den Inhalt des Verzeichnisses in Ihr Projekt und legen Sie den Include-Pfad so fest, dass er auf das Verzeichnis zeigt, das das win32
-Verzeichnis enthält.
Aufgrund der sehr generischen Benennung und der Gefahr von Namenskollisionen wird empfohlen, sie immer im win32
Verzeichnis aufzubewahren und sie in den Include-Anweisungen explizit beizubehalten: #include
.
Das win32
-Verzeichnis enthält Folgendes:
windows_base.h
atomic.h
dbghelp.h
dds.h
file.h
gdi.h
io.h
misc.h
process.h
sysinfo.h
threads.h
window.h
#include
mit den oben genannten Dateien):windows_modular.h
windows.h
windows_base.h
ist in jeder der modularen Include-Dateien enthalten und enthält die erforderlichen Typen, Makros und Strukturen, die von mehreren Modulen verwendet werden.
Wir versuchen, einen vollständigen Ersatz für die Microsoft-eigenen Header bereitzustellen und dabei ein angemessenes Maß an Kompatibilität beizubehalten und keinen vorhandenen Code zu beschädigen.
Es gibt jedoch einige wichtige Änderungen, die Sie beachten sollten:
A
oder W
anhängen, zum Beispiel CreateFileA
und CreateFileW
.MIN
/ MAX
-Makros werden nicht bereitgestellt, äquivalent zu #define NOMINMAX
. Das test
enthält einen einfachen Testfall.
Der Testfall besteht darin, jede Moduldatei mit aktivierten vollständigen Warnungen zu kompilieren. Dadurch wird sichergestellt, dass alle Abhängigkeiten erfüllt sind und keine Warnungen ausgegeben werden.
Es kann durch Aufruf ausgeführt werden:
$ nmake
Erfordert CL.EXE
und NMAKE.EXE
in Ihrem Pfad.
Dieses Projekt enthält Teile des Microsoft Windows SDK. Sie sind unter der EULA von Microsoft lizenziert. Um es nutzen zu können, müssen Sie es lesen und ihm zustimmen.
Der Rest ist unter der „MIT“- und „Unlicense“-Lizenz doppelt lizenziert.