Aktivieren von STRICT
Wenn Sie das STRICT-Symbol definieren, aktivieren Sie Features, die beim Deklarieren und Verwenden von Typen mehr Sorgfalt erfordern. Dies hilft Ihnen beim Schreiben von mehr portierbarem Code. Diese zusätzliche Sorgfalt reduziert auch Die Debugzeit. Durch aktivieren von STRICT werden bestimmte Datentypen neu definiert, sodass der Compiler die Zuweisung von einem Typ zu einem anderen ohne explizite Umwandlung nicht zulässt. Dies ist besonders hilfreich bei Windows-Code. Fehler beim Übergeben von Datentypen werden zur Kompilierzeit gemeldet, anstatt zur Laufzeit schwerwiegende Fehler zu verursachen.
Bei Visual C++ ist die STRICT-Typüberprüfung standardmäßig definiert.
Um STRICT dateibezogen zu definieren, fügen Sie eine #define-Anweisung ein, bevor Sie Windows.h einschließen:
#define STRICT
#include <windows.h>
Wenn STRICT definiert ist, ändern sich die Datentypdefinitionen wie folgt:
- Bestimmte Handle-Typen werden so definiert, dass sie sich gegenseitig ausschließen. Beispielsweise können Sie keine HWND übergeben, bei der ein HDC-Typargument erforderlich ist. Ohne STRICT werden alle Handles als HANDLE definiert, sodass der Compiler Sie nicht daran hindert, einen Handle-Typ zu verwenden, wenn ein anderer Typ erwartet wird.
- Alle Rückruffunktionstypen (z. B. Dialogprozeduren, Fensterprozeduren und Hookprozeduren) werden mit vollständigen Prototypen definiert. Dadurch wird verhindert, dass Sie Rückruffunktionen mit falschen Parameterlisten deklarieren.
- Parameter- und Rückgabewerttypen, die einen generischen Zeiger verwenden sollen, werden ordnungsgemäß als LPVOID deklariert, anstatt als LPSTR oder einen anderen Zeigertyp.
- Die COMSTAT-Struktur wird nach dem ANSI-Standard deklariert.
Zugehörige Themen