Giả sử rằng tôi đang sử dụng Windows 8+ và tôi có ứng dụng Win32/C. Có thể gọi Win32 App của tôi vào API WinRT không?Có thể cho Win32 App gọi API WinRT không?
Trả lời
Câu trả lời ngắn - yes: How to: Activate and Use a Windows Runtime Component Using WRL
Long trả lời: của Windows Runtime được chủ yếu dựa trên công nghệ COM. Các thành phần Windows Runtime thực sự là một số loại đối tượng COM. Vì vậy, các quy tắc phổ biến cho instantiating và sử dụng các đối tượng COM áp dụng cho các thành phần Windows Runtime.
Trước tiên, bạn phải khởi chạy môi trường Windows Runtime. Có một lớp hữu ích được gọi là RoInitializeWrapper
bạn có thể sử dụng để thực hiện việc này. Sau đó, bạn sử dụng một nhà máy kích hoạt để có được một con trỏ đến giao diện của thành phần Windows Runtime. Bạn làm việc với giao diện, và khi bạn hoàn thành, bạn phải uninitialize môi trường Windows Runtime bằng cách phá hủy RoInitializeWrapper
của bạn.
Bài viết này có rất nhiều ví dụ - https://msdn.microsoft.com/en-us/library/windows/desktop/mt759320(v=vs.85).aspx(d=robot) - Trọng tâm của bài viết là trên Windows Information Protection nhưng nó hiển thị cả hai ví dụ kích hoạt C++/CX và COM với C++ đơn giản. –
- 1. Golang: làm thế nào tôi có thể gọi win32 API mà không có cgo?
- 2. Các cuộc gọi API Mocking và Win32
- 3. Gọi phương thức Win32 API từ Java
- 4. Tạo menu ngữ cảnh cho win32 API
- 5. gọi Win32 API trong flex để đặt Window Display Affinity
- 6. Mục đích của cuộc gọi api win32 CreateFile2 là gì?
- 7. Giao diện Ruby win32 api
- 8. Hạn chế khóa API cho API Google Được gọi từ URL Lấy trong App Engine
- 9. Tạo bảng bằng Win32 API
- 10. Làm thế nào tôi có thể làm cho cửa sổ API Win32 hiện đại hơn?
- 11. Có thể sửa đổi User-Agent cho một WinRT HttpWebRequest không?
- 12. In trực tiếp WinRT Metro App (Không có Hộp thoại In)
- 13. Lỗi 429 khi gọi API Reddit từ Google App Engine
- 14. Có thể gọi API COM từ Java không?
- 15. Haskell tham chiếu không xác định khi gọi một số chức năng win32 api
- 16. Làm thế nào tôi có thể viết một hàm C chung để gọi một hàm Win32?
- 17. Cách theo dõi các ứng dụng WinRT (trong Win32 nó đơn giản)?
- 18. Tôi có thể sử dụng Sqlite trong ứng dụng WinRT (javascript) không?
- 19. WinRT và thiếu Web API mô hình cho Amazon truy cập API
- 20. Ứng dụng WinRT có thể sử dụng obfuscation không?
- 21. AppBarButtonSyle cho WinRT
- 22. Cửa sổ Win32 có an toàn không?
- 23. Tin nhắn WIN32 API WM_REFLECT là gì?
- 24. Cách tạo chủ đề bằng Win32 API?
- 25. Tương tự Win32 API gửi/bắt SIGTERM
- 26. Windows 7 Ribbon UI Mã API Win32
- 27. Vòng lặp trò chơi trong Win32 API
- 28. Phím nóng toàn cầu với WIN32 API?
- 29. Tại sao tôi không thể sử dụng $ app trong chức năng được gọi cho Slim?
- 30. API WinRT được quản lý có bao gồm cách tính toán băm MD5 không?
@JonathanPotter: đặt [this] (http://blogs.msdn.com/b/cdndevs/archive/2013/10/02/using-windows-8-winrt-apis-in-net-desktop-applications .aspx) và [this] (http://www.codeproject.com/Articles/12673/Calling-Managed-NET-C-COM-Objects-from-Unmanaged-C) cùng nhau gợi ý rằng nó sẽ là có thể. Có bắt tôi không nhìn thấy? –
@HarryJohnston: Thú vị liên kết. Có lẽ nó có thể trong một số cách hạn chế. Bạn nên làm cho câu trả lời này. –
API nào bạn muốn gọi? –