Microsoft (chủ yếu, Herb Sutter ) khuyến nghị khi sử dụng WinRT với C ++ / CX để giữ WinRT ở ranh giới của ứng dụng và giữ cốt lõi của ứng dụng được viết theo tiêu chuẩn ISO C ++.
Tôi đã viết một ứng dụng mà tôi muốn để lại di động, vì vậy chức năng cốt lõi của tôi đã được viết bằng C ++ tiêu chuẩn và hiện tôi đang cố gắng viết một giao diện người dùng kiểu Metro cho nó bằng C ++ / CX. Tuy nhiên, tôi đã có một chút vấn đề với cách tiếp cận này. Ví dụ: nếu tôi muốn đẩy một vectơ các loại C ++ do người dùng định nghĩa sang điều khiển ListView XAML, tôi phải bọc loại do người dùng xác định trong loại ref / value của WinRT để nó được lưu trữ trong a Vector^
. Với cách tiếp cận này, tôi chắc chắn sẽ rời đi với việc gói một phần lớn các lớp C ++ của mình với các lớp WinRT.
Đây là lần đầu tiên tôi thử viết một ứng dụng gốc di động trong C ++. Có thực sự thiết thực để giữ WinRT dọc theo ranh giới như thế này không? Làm thế nào khác loại lõi di động có ranh giới dành riêng cho nền tảng này có thể được xử lý?