2011-09-20 3 views
6

새로운 WinRT가 관리되지 않는 프레임 워크이고 COM을 기반으로한다고 들었지만 어떻게 든 WinRT와 관리되는 코드 간의 매핑을 쉽게 만들 수있는 방법을 찾아 냈습니다. 이 메커니즘이 어떻게 작동하는지 알고 싶습니다.WinRT와 관리 사이의 매핑은 어떻게 작동합니까?

+0

여기에서이 질문에 대한 답변을 확인하십시오. http://stackoverflow.com/questions/7416826/how-does-the-new-windows-8-runtime-compare-to-silverlight-and- wpf –

답변

9

Windows 런타임은 다양한 언어 예측 (C++, JavaScript 및 C#)이 읽는 메타 데이터의 모든 API를 나타냅니다.

API 모양이 메타 데이터에 설명되어 있기 때문에 언어 런타임 및 컴파일러는 API에 대해 추론 할 수 있으며 해당 API에 대한 코드를 생성하는 방법을 알 수 있습니다.

CLR의 경우 메타 데이터 형식이 CLR에서 사용되는 CLI 메타 데이터 형식 인 ECMA 335이므로 작업이 조금 더 쉽습니다. 따라서 CLR에서 약간 더 쉽게 변환 할 수 있습니다.

일반적으로 컴퓨터에있는 모든 API를 기계가 읽을 수있는 표현을 사용하면 간단하게 변환 할 수 있습니다.

+0

답해 주셔서 감사합니다. 이 metdata를 찾을 수있는 위치를 설명하는 자료 나 기사가 있습니까? 이 메타 데이터가 어떻게 생성되고 읽을 수 있습니까? – gyurisc

+0

나는 나의 질문에 여기에서 찾아 냈다 - http://stackoverflow.com/questions/7416826/how-does-the-new-windows-8-runtime-compare-to-silverlight-and-wpf – gyurisc

+2

다른 큰 변화는이다 모든 WinRT 구성 요소는 .NET 어셈블리처럼 메타 데이터를 사용할 수 있습니다. COM에서 일종의 일종의 typelibs가 있었지만 모든 COM 구성 요소에는 없었습니다. WinRT의 경우 메타 데이터는 .winmd 파일에 포함되어 있습니다. 개발자 미리보기의 "C : \ Program Files (x86) \ Windows Kits \ 8.0 \ Windows 메타 데이터 \"내부를보십시오. 주위를 둘러 보면 실제로는 코드가없고 단지 메타 데이터 테이블 만있는 CLI 어셈블리라는 것을 알 수 있습니다. 실제로 ILDASM으로 열 수 있습니다. 참고로 이것은 WinRT 자체가 관리된다는 의미는 아니며 파일 형식을 다시 사용하기 만합니다. – gyurisc

관련 문제