У нас есть настольное приложение C ++, использующее старый графический интерфейс MFC; Теперь мы хотим иметь более современный сенсорный графический интерфейс. Мы хотели бы использовать стиль приложения Windows Metro.
Поскольку мы используем некоторые SDK, которые связывают совместно используемые библиотеки MFC, мы думаем, что мы не можем написать приложение WinRT с использованием этих компонентов (или мы ошибаемся?).
Можно ли использовать WinRT GUI API в настольном приложении (с чистым C ++ без всего .net мира, как WRL / C ++)?
Мы видим некоторый пример, т.е. используя акселерометр WinRT API, но не компоненты GUI.
Пожалуйста, имейте в виду, что C ++ / CX — чистый нативный материал. Нет никаких зависимостей .NET и т. Д. Это просто расширение языка для упрощения взаимодействия COM (я уверен, что вы знаете, что WinRT — это API на основе COM), но если вам не нравится C ++ / CX, рассмотрите WRL для низкого уровня Interop.
Языковые расширения C ++ / CX экономят время, но вам не нужно их использовать. Вы можете получить низкоуровневый доступ к межъязыковому взаимодействию из стандартного C ++, если используете библиотеку шаблонов C ++ (WRL) среды выполнения Windows. WRL использует соглашения, которые будут знакомы программистам COM.
WRL — это независимый от компилятора способ создания и использования API среды выполнения Windows. Вы можете использовать WRL вместо синтаксиса C ++ / CX. Это позволяет оптимизировать ваш код для производительности или для конкретных сценариев. Он также поддерживает методологии разработки приложений, которые не используют исключения.