다음을 통해 공유


STRICT 사용

STRICT 기호를 정의할 때 형식을 선언하고 사용하는 데 더 많은 주의가 필요한 기능을 사용하도록 설정합니다. 이렇게 하면 이식 가능한 코드를 더 많이 작성할 수 있습니다. 이 추가 관리는 디버깅 시간도 단축합니다. STRICT를 사용하도록 설정하면 컴파일러가 명시적 캐스트 없이 한 형식에서 다른 형식으로의 할당을 허용하지 않도록 특정 데이터 형식을 다시 정의합니다. 이는 Windows 코드에 특히 유용합니다. 데이터 형식을 전달하는 오류는 런타임에 치명적인 오류를 일으키는 대신 컴파일 시간에 보고됩니다.

Visual C++를 사용하면 STRICT 형식 검사가 기본적으로 정의됩니다.

파일별로 STRICT 를 정의하려면 Windows.h를 포함하기 전에 #define 문을 삽입합니다.

#define STRICT
#include <windows.h>

STRICT가 정의되면 데이터 형식 정의는 다음과 같이 변경됩니다.

  • 특정 핸들 형식은 상호 배타적으로 정의됩니다. 예를 들어 HDC 형식 인수가 필요한 HWND를 전달할 수 없습니다. STRICT가 없으면 모든 핸들이 HANDLE로 정의되므로 컴파일러에서 다른 형식이 필요한 한 형식의 핸들을 사용할 수 없습니다.
  • 모든 콜백 함수 형식(예: 대화 프로시저, 창 프로시저 및 후크 프로시저)은 전체 프로토타입으로 정의됩니다. 이렇게 하면 잘못된 매개 변수 목록을 사용하여 콜백 함수를 선언할 수 없습니다.
  • 제네릭 포인터를 사용해야 하는 매개 변수 및 반환 값 형식은 LPSTR 또는 다른 포인터 형식이 아닌 LPVOID로 올바르게 선언됩니다.
  • COMSTAT 구조체는 ANSI 표준에 따라 선언됩니다.

STRICT를 사용하지 않도록 설정

STRICT 규정 준수