C++/WinRT 구성 매크로

이 항목에서는 C++/WinRT 구성 매크로에 대해 설명합니다. 달리 명시되지 않는 한 다음 규칙은 모든 C++/WinRT 구성 매크로에 적용됩니다.

  • 단일 모듈(.exe 또는 .dll)을 형성하기 위해 함께 연결된 모든 파일에는 동일한 매크로 설정이 있어야 합니다. 여기에는 정적 라이브러리가 포함됩니다.
  • C++/WinRT 헤더 파일을 포함하기 전에 모든 매크로 설정을 완료해야 합니다.
  • C++/WinRT 헤더 파일을 포함한 후에는 매크로 설정을 변경할 수 없습니다.

WINRT_LEAN_AND_MEAN

정의된 경우 컴파일 시간을 줄이기 위해 거의 사용되지 않는 다음 기능을 사용하지 않도록 설정합니다.

  • 구성 요소 외부에서 배타적 인터페이스를 구현하는 기능입니다.
  • std::hash 인터페이스 및 런타임 클래스 스마트 포인터에 대한 특수화입니다.
  • 버전 2.0.221101.3 이후 Hstring 또는 IStringable을 C++ 스트림에 직접 출력하도록 지원합니다.

WINRT_LEAN_AND_MEAN 설정이 다른 파일을 결합할 수 있습니다.

WINRT_LEAN_AND_MEAN을 정의하지 않는 파일은 거의 사용되지 않는 기능에 액세스할 수 있습니다.

WINRT_NO_MODULE_LOCK

정의된 경우 현재 모듈에 대한 개체 수를 사용하지 않도록 설정합니다. 모듈은 프로세스에서 언로드되지 않습니다. 이 매크로를 정의하는 것은 실행 파일(언로드할 수 없음) 또는 고정된 상태로 두려는 .dll에 대한 관례입니다. WINRT_CUSTOM_MODULE_LOCK과 결합할 수 없습니다.

WINRT_CUSTOM_MODULE_LOCK

정의된 경우 winrt::get_module_lock의 고유한 구현을 제공할 수 있습니다. WINRT_NO_MODULE_LOCK과 결합할 수 없습니다.

winrt::get_module_lock의 사용자 지정 구현은 다음 작업을 지원해야 합니다.

  • ++winrt::get_module_lock(): 모듈 잠금에 대한 참조 수를 증분합니다.
  • --winrt::get_module_lock(): 모듈 잠금에 대한 참조 수를 줄입니다.
  • if (winrt::get_module_lock()): 참조 수가 0이 아닌지 확인합니다. (DLL을 빌드하는 경우 필요합니다.)

WINRT_ASSERT, WINRT_VERIFY

이러한 매크로를 사용하면 어설션 처리를 사용자 지정할 수 있습니다. WINRT_ASSERT 인수를 평가할 필요가 없습니다. WINRT_VERIFY 디버그가 아닌 빌드에서도 인수를 평가해야 합니다.

이러한 매크로를 사용자 지정하지 않고 _DEBUG를 정의된 경우 C++/WinRT는 _ASSERTE 해당 매크로를 만듭니다.

이러한 매크로를 사용자 지정하지 않고 _DEBUG가 정의되지 않은 경우 C++/WinRT는 평가되지 않은 식을 삭제할 WINRT_ASSERT를 정의하고 식을 계산한 후 삭제할 WINRT_VERIFY를 정의합니다.

WINRT_NO_MAKE_DETECTION

정의된 경우 winrt::make를 사용하지 않고 구현 클래스를 실수로 생성한 것을 탐지하는 기본 C++/WinRT 진단을 사용하지 않도록 설정합니다.

이렇게 하면 프로그래밍 오류의 일반적인 원인을 가리기 때문에 이 기호를 정의하지 않는 것이 좋습니다.

WINRT_DIAGNOSTICS

정의된 경우 내부 통계를 사용하여 다양한 작업을 추적할 수 있습니다.

  • 각 인터페이스를 쿼리한 횟수입니다.
  • 각 팩터리가 요청된 횟수(및 팩터리가 민첩한지 여부)입니다.

WINRT_NATVIS

정의된 경우 Visual Studio에서 네이티브 디버그 시각화를 지원하는 도우미 함수를 포함합니다. 코드는 런타임에 사용되지 않습니다. 디버깅용으로만 존재합니다.

이 매크로를 사용자 지정하지 않으면 _DEBUG가 정의된 경우 시각화 지원 함수가 활성화됩니다. 자세한 내용은C++/WinRT용 Visual Studio 네이티브 디버그 시각화(natvis)를 참조하세요.

WINRT_NATVIS 설정이 다른 파일을 결합할 수 있습니다.

WINRT_NATVIS 지원으로 파일을 컴파일하는 경우 결과 모듈에서 네이티브 디버그 시각화를 사용하도록 설정합니다.

WINRT_EXPORT, WINRT_FAST_ABI_SIZE

이러한 매크로를 사용하지 마세요.