프로그래밍 언어/C & C++ 정리

C++/ CX 와 C++/ CLI 의 차이

게임 개발 2023. 11. 21. 18:58

 

 

C++/ CX(C++ component extensions, c++ 컴포넌트 확장)

 

C++/ CX(C++ component extensions, c++ 컴포넌트 확장)는

마이크로 소프트가  window phone8 과  window 8과 같은 새로운 윈도 런타임을 지원하기 위해 고안한,

C++를 확장한 언어 규격이다.

 

문법이 C++/CLI과 유사하지만,

컴파일한 결과물은 C++/CLI의 Managed Code가 아닌 Native Code이다.

현재 Visual studio 12이상에서 사용 가능하다.

 

 

C++/CLI(C++/ 공통 언어 기반)

 

C++/CLI(C++/ 공통 언어 기반)은 Managed Extensions for C++ 대신 사용하기위해 고안된

마이크로 소프트사의 언어 규격이다.

예전의 Managed C++(MC++) 구문을 단순화하였으므로

Managed C++에 비해 코드를 더 읽기 쉽고 명확하게 이해할 수 있다.

 

 

 

++ Plus ++

 

Native Code 와 Managed Code

 

Native Code는 컴퓨터 기계어로 작동하는 즉,

OS에 의해 직접적으로 컴파일 되는 코드를 의미한다.

작성한 코드 그대로 컴퓨터에서 구동이 된다.

컴퓨터와 매우 밀접한 관계가 있다.

 

Native Code는 프로그래머가 직접 메모리를 할당하고,

해제해야하는 Native한 환경을 갖는 Code이다.

(동적할당을 직접 관리 ex. C, C++)

 

반대로 Managed Code는

구동 시키기 위해선 인터프리터라고 불리우는 다른 프로그램이

반드시 요구 되는 코드를 의미한다.

자바 버츄어 머신이나, .Net Feamework와 같은 인터프리터가 피룡한 코드를 의미한다.

구동하기 위해서는 반드시 인터프리터를 깔아야한다.

 

Managed Code는 Garbage Collection이라는 게 있어서

할당된 메모리를 가리키는 포인터나 데이터가 없어질 때 자동으로 메모리를 수집해준다.

메모리를 Manage 해준다는 것이다. (프로그래머가 직접 관리 x ex. C#, Java)

즉, 메모리에 대한 할당이나 해제가 필요없다고 생각하면 조금 더 쉽게 접근이 가능하다.

 

근래에는 Managed C++ / Managed DirectX 등과 같이

인터프리터를 이용한 Native 언어가 나왔다.

 

++

 

 

 

참고 사이트

https://m.blog.naver.com/ehgml1644

 

도희로그 : 네이버 블로그

당신의 모든 기록을 담는 공간

m.blog.naver.com

https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/

 

C++/WinRT - UWP applications

C++/WinRT is an entirely standard modern C++17 language projection for Windows Runtime (WinRT) APIs, implemented as a header-file-based library.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp?view=msvc-170

 

C++/CLI를 사용한 .NET 프로그래밍

C++/CLI를 사용하여 Visual Studio에서 .NET 앱 및 구성 요소를 만드는 방법을 알아봅니다.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/cpp/extensions/context-sensitive-keywords-cpp-component-extensions?view=msvc-170

'프로그래밍 언어 > C & C++ 정리' 카테고리의 다른 글

모던 C++ 함수형 프로그래밍 auto  (0) 2023.12.16
상황에 맞는 키워드 (Context-Sensitive Keywords)  (0) 2023.11.21
C++ 오류 처리  (0) 2023.11.17
effective c++  (0) 2023.11.05
<memory> smart pointer  (0) 2023.10.29