Partager via


Activation de STRICT

Lorsque vous définissez le symbole STRICT , vous activez les fonctionnalités qui nécessitent plus de soin lors de la déclaration et de l’utilisation des types. Cela vous permet d’écrire du code plus portable. Ce soin supplémentaire réduit également votre temps de débogage. L’activation de STRICT redéfinit certains types de données afin que le compilateur n’autorise pas l’affectation d’un type à un autre sans cast explicite. Cela est particulièrement utile avec le code Windows. Les erreurs lors de la transmission des types de données sont signalées au moment de la compilation au lieu de provoquer des erreurs irrécupérables au moment de l’exécution.

Avec Visual C++, la vérification de type STRICT est définie par défaut.

Pour définir STRICT fichier par fichier, insérez une instruction #define avant d’inclure Windows.h :

#define STRICT
#include <windows.h>

Lorsque STRICT est défini, les définitions de type de données changent comme suit :

  • Des types de handle spécifiques sont définis pour s’exclure mutuellement ; par exemple, vous ne pourrez pas passer un HWND où un argument de type HDC est requis. Sans STRICT, tous les handles étant définis en tant que HANDLE, le compilateur ne vous empêche pas d’utiliser un type de handle là où un autre type est attendu.
  • Tous les types de fonctions de rappel (tels que les procédures de dialogue, les procédures de fenêtre et les procédures de raccordement) sont définis avec des prototypes complets. Cela vous empêche de déclarer des fonctions de rappel avec des listes de paramètres incorrectes.
  • Les types de valeurs de paramètre et de retour qui doivent utiliser un pointeur générique sont déclarés correctement en tant que LPVOID au lieu de LPSTR ou d’un autre type de pointeur.
  • La structure COMSTAT est déclarée conformément à la norme ANSI.

Désactivation de STRICT

Conformité STRICTE