Abilitazione di STRICT

Quando si definisce il simbolo STRICT , è possibile abilitare le funzionalità che richiedono maggiore attenzione nella dichiarazione e nell'uso dei tipi. Ciò consente di scrivere codice più portatile. Questa assistenza aggiuntiva ridurrà anche il tempo di debug. L'abilitazione di STRICT ridefinirà determinati tipi di dati in modo che il compilatore non consenta l'assegnazione da un tipo a un altro senza un cast esplicito. Questo è particolarmente utile con il codice Di Windows. Gli errori nel passaggio dei tipi di dati vengono segnalati in fase di compilazione anziché causare errori irreversibili in fase di esecuzione.

Con Visual C++, il controllo dei tipi STRICT è definito per impostazione predefinita.

Per definire STRICT in base a file, inserire un'istruzione #define prima di includere Windows.h:

#define STRICT
#include <windows.h>

Quando si definisce STRICT , le definizioni dei tipi di dati cambiano nel modo seguente:

  • I tipi di handle specifici sono definiti per essere reciprocamente esclusivi; ad esempio, non sarà possibile passare un HWND in cui è necessario un argomento di tipo HDC . Senza STRICT, tutti gli handle sono definiti come HANDLE, pertanto il compilatore non impedisce di usare un tipo di handle in cui è previsto un altro tipo.
  • Tutti i tipi di funzione di callback (ad esempio procedure di dialogo, procedure di finestra e procedure di hook) sono definiti con prototipi completi. Ciò impedisce di dichiarare funzioni di callback con elenchi di parametri non corretti.
  • I tipi di parametro e di valore restituiti che devono usare un puntatore generico vengono dichiarati correttamente come LPVOID anziché come LPSTR o un altro tipo di puntatore.
  • La struttura COMSTAT viene dichiarata in base allo standard ANSI.

Disabilitazione di STRICT

Conformità STRICT