2014-09-17 14 views
5

Windows 8+ üzerinde olduğumu varsayalım ve bir Win32/C Uygulaması var. Win32 Uygulamam WinRT API'sine çağrı yapabilir mi?Win32 App bir WinRT API çağrısı için mümkün mü?

+1

@JonathanPotter: bu [http://blogs.msdn.com/b/cdndevs/archive/2013/10/02/using-windows-8-winrt-apis-in-net-desktop-applications .aspx) ve [this] (http://www.codeproject.com/Articles/12673/Calling-Managed-NET-C-COM-Objects-from-Unmanaged-C) birlikte olması gerektiğini düşündürmektedir. Göremediğim bir yaka var mı? –

+0

@HarryJohnston: İlginç bağlantı. Belki bazı sınırlı yollarla mümkündür. Bunu bir cevap vermelisin. –

+0

Hangi API'yi aramak istiyorsunuz? –

cevap

5

Kısa cevap - evet: How to: Activate and Use a Windows Runtime Component Using WRL

Uzun cevap: Windows Zamanı ağır COM teknolojisine dayanmaktadır. Windows Çalışma Zamanı bileşenleri aslında bir çeşit COM nesnesidir. Bu nedenle, COM nesnelerinin başlatılması ve kullanılması için genel kurallar, Windows Runtime bileşenlerine uygulanır.

İlk olarak, Windows Çalışma Zamanı ortamını başlatmanız gerekir. Bunu yapmak için kullanabileceğiniz RoInitializeWrapper adında kullanışlı bir sınıf var. Ardından, Windows Çalışma Zamanı bileşeninin arabirimine bir işaretçi elde etmek için bir etkinleştirme fabrikası kullanırsınız. Arabirim ile çalışırsınız ve bittiğinde, Windows Runtime ortamını RoInitializeWrapper'unuzu yok ederek başlatmanız gerekir.

+0

Bu makalede çok sayıda örnek var - https://msdn.microsoft.com/en-us/library/windows/desktop/mt759320(v=vs.85).aspx(d=robot) - Makalenin odak noktası Windows Bilgi Koruması üzerinde ancak C++/CX ve COM etkinleştirme örneklerini düz jane C++ ile gösterir. –

İlgili konular