2014-09-17 3 views
5

Windows 8 이상이고 Win32/C App를 사용한다고 가정합니다. 내 Win32 응용 프로그램에서 WinRT API를 호출 할 수 있습니까?Win32 앱에서 WinRT API를 호출 할 수 있습니까?

+1

@JonathanPotter : [this] (http://blogs.msdn.com/b/cdndevs/archive/2013/10/02/using-windows-8-winrt-apis-in-net-desktop-applications) .aspx)와 [this] (http://www.codeproject.com/Articles/12673/Calling-Managed-NET-C-COM-Objects-from-Unmanaged-C)는 모두 가능해야한다고 제안합니다. 내가 못보고있는 catch가 있나? –

+0

@HarryJohnston : 흥미로운 링크. 아마 그것은 어떤 제한된 방법으로 가능합니다. 이 대답을해야합니다. –

+0

어떤 API를 호출 하시겠습니까? –

답변

5

짧은 답변 - 예 : How to: Activate and Use a Windows Runtime Component Using WRL

긴 대답 : Windows 런타임이 크게 COM 기술을 기반으로합니다. Windows 런타임 구성 요소는 실제로 일종의 COM 개체입니다. COM 개체를 인스턴스화하고 사용하는 일반적인 규칙은 Windows 런타임 구성 요소에 적용됩니다.

먼저 Windows 런타임 환경을 초기화해야합니다. 이를 수행하는 데 사용할 수있는 유용한 클래스가 RoInitializeWrapper입니다. 그런 다음 활성화 팩토리를 사용하여 Windows 런타임 구성 요소의 인터페이스에 대한 포인터를 가져옵니다. 인터페이스로 작업하고 작업을 마치면 RoInitializeWrapper을 삭제하여 Windows 런타임 환경을 초기화하지 않아야합니다.

+0

이 기사에는 많은 예제가있다 - https://msdn.microsoft.com/en-us/library/windows/desktop/mt759320(v=vs.85).aspx(d=robot) - 기사의 초점은 Windows 정보 보호에 관해서는 C++/CX 및 COM 활성화 예제와 일반 jane C++를 보여줍니다. –