목차

Visual C++ Language Reference (C++/CX)

Quick Reference (C++/CX)

/ZW 컴파일 옵션을 켜면 UWP 앱을 빌드하는 것으로 간주.

/FU 옵션이 켜져 있으면 런타임 메타 데이터 사용?

'default' 네임스페이스가 기본

'Platform' 윈도우즈 런타임 타입을 가리킨다.

비교

__wchar_t           char16                  
// UTF-16이라네

int                 int                     
// int는 32비트

long long           int64, uint64
__int64

float               float32, float64
double

enum {}             enum class {}
                    enum struct {}

std::time_get       Windows::Foundation::DateTime

std::wstring        Platform::String^
L".."

// 포인터 : 포인터가 좀 다르다.
포인터(*)             ^ , _TYPE_^ _ID_
std::shared_ptr                             
// 멤버 접근은 '->'로.
// '^' 자동으로 레퍼런스 카운팅을 합니다라는 뜻이라는데.

//레퍼런스
Object&                 Object%                  
_TYPE_& _ID_            _TYPE_% _ID_            
// 트래킹 레퍼런스(Tracking reference)라는 좀 다른 개념
// 멤버 사용할때는 '.'을 사용한다.

// 동적선언
new                    ref new

// 삭제
delete, delete[]   자동삭제                     
// 레퍼런스 카운팅에 삭제 여부를 자동 결정.

// 배열
TYPE _ID_ []         Arry< _TYPE_ ^>^ _ID_( _SIZE_ )
std::array           WriteOnlyArray< _TYPE_ ^>^ _ID_( _SIZE_ )
// 오브젝트 제어자를(handle-to-object) 사용해야 한다.

// 클래스
class _ID_ {}        ref class _ID_ {}
struct _ID_ {}       ref struct _ID_ {}
// private 접근성을 가진 클래스 생성
// public 접근성을 가진 클래스 생성


// 구조체
strcut _ID_ {}       value class _ID_ {}
                     value struct _ID_ {}
// 윈도우즈 메타 데이터를 표시한다는데?

// interface
abstruct class        interface class _ID_ {}
pure virtual 을 가진    interface struct _ID_ {}

// 델리게이트
std::function         public delegate _RETURN_ _DELEGATE_TYPE_ID_ ([ _PARAM_ ])

// 가변타입 (Parameterized types)
templates             generic<typename _TYPE_ > interface class _ID_ {}
                      generic<typename _TYPE_ > delegate _RET_TYPE_ _DELEGATE_ID_ () {}

// 널값에 대한 처리
boost::optional<_TYPE_>                Platform::IBox<_TYPE_>

단독

Platform::Guid                  128비트 GUID

Windows::Foundation::TimeSpan   timespan 구조체 |

Platform::Object^               레퍼런스 카운트 기반의 윈도우 런타임 타입 시스템

// event - begin
event _DELEGATE_TYPE_ID_ _EVENT_ID_ ;
_DELEGATE_TYPE_ID_ _DELEGATE_ID_ = ref new _DELEGATE_TYPE_ID_( this, [_PARAM_] );
// event - 등록 
_EVENT_ID_ += _DELEGATE_ID_ ;
(or)
EventRegistrationToken _TOKEN_ID_ = _OBJ_ . _EVENT_ID_ += _DELEGATE_ID_;
(or)
auto _TOKEN_ID_ = _OBJ_ . _EVENT_ID_ ::add( _DELEGATE_ID_ );
// event - 삭제
_OBJ_ . _EVENT_ID_ -= _TOKEN_ID_ ;
(or)
_OBJ_ . _EVENT_ID_ ::remove( _TOKEN_ID_ ) ;
// event - end

// 프로퍼티
property _TYPE_ _ID_ ;
property _TYPE_ _ID_ [ _INDEX_ ] ;
property _TYPE_ default [ _INDEX_ ] ;

UWP 프레임워크 정의

Windows::ApplicationModel::Core::IFrameworkView 매니페스트

보기를 표시하도록 DirectX Windows 스토어 앱을 설정하는 방법

뷰만들기와 초기화

DX

UWP 앱에 DirectX 지원하려면

인터페이스 구현

UWP Hello World

https://docs.microsoft.com/ko-kr/windows/uwp/get-started/create-a-basic-windows-10-app-in-cpp