Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При определении символа STRICT активируются функции, требующие более внимательного подхода при объявлении и использовании типов. Это помогает создавать более переносимый код. Это дополнительное внимание также сократит время отладки. Включение STRICT переопределяет некоторые типы данных так, чтобы компилятор не разрешал присваивание значений одного типа другому без явного приведения. Это особенно полезно для кода Windows. Ошибки при передаче типов данных передаются во время компиляции вместо того, чтобы вызывать неустранимые ошибки во время выполнения.
При использовании Visual C++проверка типа STRICT определяется по умолчанию.
Чтобы определить STRICT для каждого файла, вставьте инструкцию #define перед включением Windows.h:
#define STRICT
#include <windows.h>
При определении STRICT определения типа данных изменяются следующим образом:
- Определенные типы дескрипторов определяются как взаимоисключающие; Например, вы не сможете передать HWND, где требуется аргумент типа HDC. Без STRICTвсе дескрипторы определяются как HANDLE, поэтому компилятор не запрещает использовать один тип дескриптора, где ожидается другой тип.
- Все типы функций обратного вызова (такие как диалоговые процедуры, оконные процедуры и хук-процедуры) определяются с полными прототипами. Это не позволяет вам объявлять функции обратного вызова с неправильными списками параметров.
- Типы параметров и возвращаемых значений, которые должны использовать универсальный указатель, объявляются правильно как LPVOID вместо LPSTR или другого типа указателя.
- Структура COMSTATобъявлена в соответствии со стандартом ANSI.
Связанные разделы