다음을 통해 공유


CLR 통합(C++/CX)

일부 Windows 런타임 형식은 C++/CX 및 CLR(공용 언어 런타임)을 기반으로 하는 언어로 특수한 처리를 받습니다. 이 문서에서는 한 언어의 여러 형식을 다른 언어에 매핑하는 방법을 설명합니다. 예를 들어 CLR은 Windows.Foundation.IVector를 System.Collections.IList에 매핑하고, Windows.Foundation.IMap를 System.Collections.IDictionary에 매핑합니다. 마찬가지로 C++/CX는 Platform::D elegate 및 Platform::String과 같은 형식을 특별히 매핑합니다.

C++/CX에 Windows 런타임 매핑

C++/CX가 Windows 메타데이터(.winmd) 파일을 읽는 경우 컴파일러는 공통 Windows 런타임 네임스페이스 및 형식을 C++/CX 네임스페이스 및 형식에 자동으로 매핑합니다. 예를 들어 숫자 Windows 런타임 형식 UInt32 은 자동으로 매핑됩니다default::uint32.

C++/CX는 플랫폼 네임스페이스에 다른 여러 Windows 런타임 형식을 매핑합니다. 예를 들어 읽기 전용 유니코드 텍스트 문자열을 나타내는 Windows::Foundation HSTRING 핸들은 C++/CX Platform::String 클래스에 매핑됩니다. Windows 런타임 작업에서 오류 HRESULT를 반환하면 C++/CXPlatform::Exception에 매핑됩니다.

또한 C++/CX는 Windows 런타임 네임스페이스의 특정 형식을 매핑하여 형식의 기능을 향상시킵니다. 이러한 형식의 경우 C++/CX는 C++와 관련되고 형식의 표준 .winmd 파일에서 사용할 수 없는 도우미 생성자 및 메서드를 제공합니다.

다음 목록에서는 새 생성자 및 도우미 메서드를 지원하는 값 구조체를 보여 줍니다. 구조체 초기화 목록을 사용하는 이전에 작성된 코드가 있으면 새로 추가된 생성자를 사용하도록 이를 변경합니다.

Windows::Foundation

  • Point

  • Rect

  • 크기

Windows::UI

Windows::UI::Xaml

  • CornerRadius

  • 기간

  • GridLength

  • 두께

Windows::UI::Xaml::Interop

  • TypeName

Windows::UI::Xaml::Media

  • 행렬

Windows::UI::Xaml::Media::Animation

  • KeyTime

  • RepeatBehavior

Windows::UI::Xaml::Media::Media3D

  • Matrix3D

C++/CX에 CLR 매핑

Microsoft C++ 또는 C# 컴파일러가 .winmd 파일을 읽을 때 메타데이터 파일의 특정 형식을 적절한 C++/CX 또는 CLR 형식에 자동으로 매핑합니다. 예를 들어 CLR에서 IVector<T> 인터페이스는 IList<T>에 매핑됩니다. 그러나 C++/CX에서는 IVector<T> 인터페이스가 다른 형식에 매핑되지 않습니다.

Windows 런타임 IReference<T>는 .NET의 Nullable<T>에 매핑됩니다.

참고 항목

다른 언어와의 상호 운용