빠른 참조(C++/CX)
Windows 런타임 UWP(유니버설 Windows 플랫폼) 앱을 지원합니다. 이러한 앱은 신뢰할 수 있는 운영 체제 환경에서만 실행되고, 권한 있는 함수, 데이터 형식 및 디바이스를 사용하며, Microsoft Store를 통해 배포됩니다. C++/CX는 Windows 런타임 대한 앱 작성을 간소화합니다. 이 문서는 빠른 참조입니다. 자세한 내용은 형식 시스템을 참조 하세요.
명령줄에서 빌드하는 경우 컴파일러 옵션을 사용하여 /ZW
UWP 앱 또는 Windows 런타임 구성 요소를 빌드합니다. Windows 런타임 메타데이터(.winmd) 파일에 정의된 Windows 런타임 선언에 액세스하려면 지시문 또는 /FU
컴파일러 옵션을 지정 #using
합니다. UWP 앱에 대한 프로젝트를 만들 때 Visual Studio는 기본적으로 이러한 옵션을 설정하고 모든 Windows 런타임 라이브러리에 참조를 추가합니다.
빠른 참조
개념 | 표준 C++ | C++/CX | 설명 |
---|---|---|---|
기본 형식 | C++ 기본 형식 | Windows 런타임 정의된 기본 형식을 구현하는 C++/CX 기본 형식입니다. | 네임스페이스에는 default 기본 제공 C++/CX 기본 형식이 포함되어 있습니다. 컴파일러는 C++/CX 기본 형식을 표준 C++ 형식에 암시적으로 매핑합니다.Platform 네임스페이스의 패밀리에는 기본 Windows 런타임 형식을 구현하는 형식이 포함되어 있습니다. |
bool |
bool |
8비트 부울 값입니다. | |
wchar_t , char16_t |
char16 |
유니코드(UTF-16) 코드 포인트를 나타내는 숫자가 아닌 16비트 값입니다. | |
short unsigned short |
int16 uint16 |
16비트 부호 있는 정수입니다. 16비트 부호 없는 정수입니다. |
|
int unsigned int |
int uint32 |
32비트 부호 있는 정수입니다. 32비트 부호 없는 정수입니다. |
|
long long 또는 __int64 unsigned long long |
int64 uint64 |
64비트 부호 있는 정수입니다. 64비트 부호 없는 정수입니다. |
|
float , double |
float32 , float64 |
32비트 또는 64비트 IEEE 754 부동 소수점 숫자입니다. | |
enum |
enum class 또는 enum struct |
32비트 열거형입니다. | |
(적용되지 않음) | Platform::Guid |
Platform 네임스페이스의 숫자가 아닌 128비트 값(GUID)입니다. |
|
std::time_get |
Windows::Foundation::DateTime |
날짜/시간 구조체입니다. | |
(적용되지 않음) | Windows::Foundation::TimeSpan |
시간 범위 구조체입니다. | |
(적용되지 않음) | Platform::Object^ |
Windows 런타임 형식 시스템의 C++ 뷰에서 참조 계산된 기본 개체입니다. | |
std::wstring L"..." |
Platform::String^ |
Platform::String^ 은 참조 횟수가 계산된 변경할 수 없는 유니코드 문자의 시퀀스(텍스트를 나타냄)입니다. |
|
포인터 | 개체에 대한 포인터(* )std::shared_ptr |
개체 핸들(^ , "햇"으로 발음)T^ identifier |
모든 Windows 런타임 클래스는 핸들-개체 한정자를 사용하여 선언됩니다. 개체의 멤버는 화살표(-> ) 클래스 멤버 액세스 연산자를 사용하여 액세스됩니다.hat 한정자는 "자동으로 참조되는 Windows 런타임 개체에 대한 포인터"를 의미합니다. 보다 정확하게 말하자면, 핸들-개체는 컴파일러가 개체의 참조 수를 자동으로 관리하는 코드를 삽입하고 참조 수가 0으로 이동하면 개체를 삭제해야 한다고 선언합니다. |
참조 | 개체(& )에 대한 참조입니다.T& identifier |
추적 참조(% ):T% identifier |
추적 참조 한정자를 사용하여 Windows 런타임 형식만 선언할 수 있습니다. 개체의 멤버는 점(. ) 클래스 멤버 액세스 연산자를 사용하여 액세스됩니다.추적 참조는 "자동으로 참조되는 Windows 런타임 개체에 대한 참조"를 의미합니다. 더 정확하게 말하면 추적 참조는 컴파일러가 개체의 참조 수를 자동으로 관리하는 코드를 삽입해야 한다고 선언합니다. 참조 수가 0으로 설정되면 코드에서 개체를 삭제합니다. |
동적 형식 선언 | new |
ref new |
Windows 런타임 개체를 할당한 다음 해당 개체에 대한 핸들을 반환합니다. |
개체 수명 관리 | delete identifier delete[] identifier |
소멸자를 호출합니다. | 수명은 참조 횟수에 따라 결정됩니다. 소멸자를 호출하는 delete 호출이지만 그 자체는 메모리를 해제하지 않습니다. |
배열 선언 | T identifier[] std::array identifier |
Array<T^>^ identifier( size ) -또는- WriteOnlyArray<T^> identifier( size ) |
형식 T^ 의 1차원 수정 가능 또는 쓰기 전용 배열을 선언합니다. 배열 자체도 개체 핸들 한정자를 사용하여 선언해야 하는 참조 횟수가 계산되는 개체입니다.배열 선언에서는 Platform 네임스페이스에 있는 템플릿 헤더 클래스를 사용합니다. |
클래스 선언 | class identifier {} struct identifier {} |
ref class identifier {} ref struct identifier {} |
기본 private 접근성이 있는 런타임 클래스를 선언합니다.기본 public 접근성이 있는 런타임 클래스를 선언합니다. |
구조체 선언 | struct identifier {} (즉, POD(Plain Old Data) 구조체) |
value class identifier {} value struct identifier {} |
기본 private 접근성이 있는 POD 구조체를 선언합니다.A는 value class Windows 메타데이터로 나타낼 수 있지만 표준 C++ class 는 나타낼 수 없습니다.기본 public 접근성이 있는 POD 구조체를 선언합니다.A는 value struct Windows 메타데이터로 나타낼 수 있지만 표준 C++ struct 는 나타낼 수 없습니다. |
인터페이스 선언 | 순수 가상 함수만 포함하는 추상 클래스입니다. | interface class identifier {} interface struct identifier {} |
기본 private 접근성이 있는 인터페이스를 선언합니다.기본 public 접근성이 있는 인터페이스를 선언합니다. |
대리인 | std::function |
public delegate return-type delegate-type-identifier ( [ 매개 변수 ]); |
함수 호출과 같이 호출할 수 있는 개체를 선언합니다. |
이벤트 | (적용되지 않음) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, 매개 변수]); event-identifier += *delegate-identifier; 또는 EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier; 또는 auto token-identifier = object.event-identifier::add( delegate-identifier ); object.event-identifier -= token-identifier; 또는 object.event-identifier::remove( token-identifier ); |
event 이벤트가 발생할 때 호출되는 이벤트 처리기(대리자) 컬렉션을 저장하는 개체를 선언합니다.이벤트 처리기를 만듭니다. 이벤트 처리기를 추가합니다. 이벤트 처리기를 추가하면 이벤트 토큰( token-identifier )이 반환됩니다. 이벤트 처리기를 명시적으로 제거하려면 나중에 사용하도록 이벤트 토큰을 저장해야 합니다.이벤트 처리기를 제거합니다. 이벤트 처리기를 제거하려면 이벤트 처리기가 추가될 때 저장한 이벤트 토큰을 지정해야 합니다. |
속성 | (적용되지 않음) | property T identifier; property T identifier[ index ]; property T default[ index ]; |
클래스 또는 개체 멤버 함수가 데이터 멤버 또는 인덱싱된 배열 요소에 액세스하는 데 사용된 같은 구문을 사용하여 액세스됨을 선언합니다. 클래스 또는 개체 멤버 함수의 속성을 선언합니다. 개체 멤버 함수의 인덱싱된 속성을 선언합니다. 클래스 멤버 함수의 인덱싱된 속성을 선언합니다. |
매개 변수화된 형식 | 템플릿 | generic <typename T> interface class identifier {} generic <typename T > delegate [return-type ]delegate-identifier() {} |
매개 변수화된 인터페이스 클래스를 선언합니다. 매개 변수화된 대리자를 선언합니다. |
Nullable 값 형식 | std::optional<T> |
Platform::IBox <T> |
스칼라 형식 및 value 구조체의 변수에 값을 nullptr 사용할 수 있습니다. |
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기