2014-09-17 4 views
5

मान लीजिए कि मैं विंडोज 8+ पर हूं और मेरे पास Win32/C ऐप है। क्या मेरा Win32 ऐप WinRT API में कॉल कर सकता है?Win32 ऐप को WinRT API को कॉल करने के लिए संभव है?

+1

@ जोनाथन पोटर: डालने [यह] (http://blogs.msdn.com/b/cdndevs/archive/2013/10/02/using-windows-8-winrt-apis-in-net-desktop-plplications .aspx) और [यह] (http://www.codeproject.com/Articles/12673/Calling- प्रबंधित-NET-C-COM-Objects-from-Unmanaged-C) एक साथ सुझाव देता है कि यह संभव होना चाहिए। क्या कोई पकड़ है जिसे मैं नहीं देख रहा हूं? –

+0

@ हैरीजोस्टन: दिलचस्प लिंक। शायद कुछ सीमित तरीके से यह संभव है। आपको यह जवाब देना चाहिए। –

+0

आप कौन सी एपीआई कॉल करना चाहते हैं? –

उत्तर

5

लघु जवाब - हाँ: How to: Activate and Use a Windows Runtime Component Using WRL

लांग जवाब: विंडोज रनटाइम भारी कॉम प्रौद्योगिकी पर आधारित है। विंडोज रनटाइम घटक वास्तव में कुछ प्रकार की COM ऑब्जेक्ट्स हैं। इसलिए COM ऑब्जेक्ट्स को तुरंत चालू करने और उपयोग करने के लिए सामान्य नियम विंडोज रनटाइम घटकों पर लागू होते हैं।

सबसे पहले, आपको विंडोज रनटाइम पर्यावरण शुरू करना होगा। RoInitializeWrapper नामक एक उपयोगी कक्षा है जिसे आप ऐसा करने के लिए उपयोग कर सकते हैं। फिर, आप Windows रनटाइम घटक के इंटरफ़ेस में पॉइंटर प्राप्त करने के लिए एक सक्रियण फैक्ट्री का उपयोग करते हैं। आप इंटरफ़ेस के साथ काम करते हैं, और जब आप समाप्त करते हैं, तो आपको अपने RoInitializeWrapper को नष्ट करके विंडोज रनटाइम पर्यावरण को अनइनाइज़ करना होगा।

+0

इस आलेख में कई उदाहरण हैं - https://msdn.microsoft.com/en-us/library/windows/desktop/mt759320(v=vs.85).aspx(d=robot) - लेख का ध्यान है विंडोज सूचना सुरक्षा पर, लेकिन यह सादे जेन सी ++ के साथ सी ++/सीएक्स और COM सक्रियण उदाहरण दोनों दिखाता है। –

संबंधित मुद्दे