2015-04-06 2 views
2

У нас есть настольное приложение C++ с использованием старого графического интерфейса MFC; теперь мы хотим иметь более современный сенсорный графический интерфейс. Мы хотели бы использовать стиль приложения Metro Metro.
Поскольку мы используем некоторые sdk, которые связывают общие библиотеки mfc, мы считаем, что мы не можем писать приложение WinRT с использованием этих компонентов (или мы ошибаемся?).
WinRT GUI в настольном приложении

Возможно ли использовать WinRT GUI api в настольном приложении (с чистым C++ без чего-либо из мира .net, например WRL/C++)?
Мы видим пример, например, using accelerometer WinRT api, но не компоненты GUI.

+1

Это идеальное обоснование. Почему это было закрыто. Этот закрывающий фашизм действительно начинает сосать. Ответ: Нет - вы не можете смешивать графический интерфейс WinRT и обычный графический интерфейс Win32. И я не думаю, что WinRT сейчас достаточно хорош, чтобы его перенести. Указанная причина заключалась в том, что Win32 неулучшаем из-за всех этих старых файлов сообщений Windows Win32, которые никто не хочет сломать, поэтому они создали новый уровень поверх него. Но, как обычно, MS остановилась на этом пути, оставив нам что-то гораздо менее полезное, чем Cocoa. – Lothar

ответ

1

Пожалуйста, имейте в виду, что C++/CX - это чистый родной материал. Не существует зависимостей .NET и т. Д. Это просто расширение языка для упрощения COM-взаимодействия (я уверен, вы знаете, что WinRT - это API на основе COM), но если вам не нравится C++/CX, рассмотрите WRL для низкоуровневых Interop.

Языковые расширения C++/CX экономят время, но вам не нужно их использовать. Вы можете получить доступ на более низком уровне к межязычному взаимодействию со стандартного C++, если вы используете библиотеку шаблонов Windows Runtime C++ (WRL). WRL использует соглашения, которые будут знакомы программистам COM.

WRL - это компилятор-агностический способ создания и использования API-интерфейсов Windows Runtime. Вы можете использовать WRL вместо синтаксиса C++/CX. Это позволяет оптимизировать код для производительности или для конкретных сценариев. Он также поддерживает методологии разработки приложений, которые не используют исключения.

 Смежные вопросы

  • Нет связанных вопросов^_^