Zakładając, że jestem na Windows 8+ i mam aplikację Win32/C. Czy moja aplikacja Win32 może wywoływać interfejs API WinRT?Możliwe dla aplikacji Win32 wywoływanie interfejsu API WinRT?
Odpowiedz
Krótka odpowiedź - tak: How to: Activate and Use a Windows Runtime Component Using WRL
Długa odpowiedź: systemu Windows Runtime jest w dużym stopniu oparta na technologii COM. Składniki środowiska wykonawczego Windows są w rzeczywistości obiektami COM. Tak więc wspólne reguły do tworzenia instancji i korzystania z obiektów COM mają zastosowanie do składników środowiska wykonawczego Windows.
Najpierw należy zainicjować środowisko wykonawcze systemu Windows. Istnieje przydatna klasa o nazwie RoInitializeWrapper
, której możesz użyć, aby to zrobić. Następnie należy użyć fabryki aktywacji, aby uzyskać wskaźnik do interfejsu komponentu środowiska wykonawczego systemu Windows. Pracujesz z interfejsem, a kiedy skończysz, musisz zrezygnować z inicjowania środowiska wykonawczego Windows, niszcząc swój RoInitializeWrapper
.
Ten artykuł zawiera wiele przykładów - https://msdn.microsoft.com/en-us/library/windows/desktop/mt759320(v=vs.85).aspx(d=robot) - Głównym tematem artykułu jest w systemie Windows Information Protection, ale pokazuje zarówno przykłady aktywacji C++/CX, jak i COM z prostą jane C++. –
- 1. WinRT jako zamiennik Win32 API
- 2. Czy jest możliwe utworzenie IME w WinRT?
- 3. Interfejs API win32 win32 api
- 4. Jak śledzić aplikacje WinRT (w Win32 był prosty)?
- 5. Tworzenie menu kontekstowego dla Win32 API
- 6. Projektant wizualny dla natywnych aplikacji Win32
- 7. Jak uzyskać rozdzielczość ekranu? Dla aplikacji WinRT?
- 8. Uruchamianie aplikacji Win32 skompilowanych dla ARM w systemie Windows RT
- 9. Uwierzytelnianie dla nowego interfejsu API Twittera 1.1
- 10. OAuth2 dla niestandardowego interfejsu API
- 11. Zmiana kultury interfejsu użytkownika w WinRT
- 12. Jak korzystać z interfejsu API YouTube dla aplikacji na iOS?
- 13. Korzystanie z interfejsu Google Drive API dla aplikacji iOS
- 14. Użyj interfejsu Facebook Live API dla mojej aplikacji mobilnej
- 15. Strategia uwierzytelniania dla interfejsu API REST i aplikacji mobilnej
- 16. Brakujące interfejsy API Google dla poziomu interfejsu API API 25
- 17. Win32: Obejść dla GetFileAttributes()
- 18. Tworzenie tabeli przy użyciu Win32 API
- 19. Stos API Win32 chodzić z MinGW/MSYS?
- 20. WinRT i brakuje Web API modele Amazon dostępu API
- 21. Wywoływanie interfejsu API Google Analytics do statystyk dla określonych stron (filtrowanie według stron)
- 22. C#: Dlaczego wywoływanie zaimplementowanej metody interfejsu jest szybsze dla zmiennej klasy niż dla zmiennej interfejsu?
- 23. OpenProcess na obrazach x64 z aplikacji Win32
- 24. Wymiana WinRT dla System.ComponentModel.TypeConverter
- 25. AppBarButtonSyle dla WinRT
- 26. Wywoływanie trasy dla testu mocha
- 27. Uwierzytelnianie dla aplikacji Symfony2 api (do korzystania z aplikacji mobilnych)
- 28. Strukturyzacja stosu interfejsu Web API dla wersji
- 29. Jak pobrać lokalizację urządzenia przy użyciu interfejsu API interfejsu API?
- 30. Podczas korzystania z interfejsu Google Places API, jaka jest różnica między "używanie biblioteki JavaScript" i "bezpośrednie wywoływanie interfejsu API"?
@JonathanPotter: wprowadzenie [this] (http://blogs.msdn.com/b/cdndevs/archive/2013/10/02/using-windows-8-winrt-apis-in-net-desktop-applications .aspx) i [this] (http://www.codeproject.com/Articles/12673/Calling-Managed-NET-C-COM-Objects-from-Unmanaged-C) razem sugerują, że powinno być możliwe. Czy jest jakiś haczyk, którego nie widzę? –
@HarryJohnston: Interesujący link. Być może jest to możliwe w pewien ograniczony sposób. Powinieneś zrobić to odpowiedź. –
Które API chcesz połączyć? –