Могу ли я использовать чистый родной C ++ для написания приложений для Windows 8 Metro?

С нативным c ++, я имею в виду, не управляемый c ++, не cli, не какие-то особые вещи от Microsoft, я могу:

1) получить высокую производительность
2) использовать существующую библиотеку кода и движок c ++
3) написать кроссплатформенный код (например, для ios и android)

он не должен быть полностью нативным c ++, я могу использовать управляемый код для выполнения функций пользовательского интерфейса, таких как object-c в ios и java в android, но кроме интерфейса, могу ли я использовать нативный код c ++?

6

Решение

Предлагаю вам посмотреть презентацию здесь: Использование среды выполнения Windows из C ++ и особенно на комментарии от Херба Саттера. Я цитирую:

Пожалуйста, ответьте на этот вопрос: если я решу написать приложение для C ++ GUI
в стиле Metro я вынужден использовать все эти проприетарные ссылки, запечатанные,
^, Platform :: String ^ расширения для компонентов GUI или нет?

@ Томас: Нет, вы не обязаны их использовать. Мы предоставляем два
поддерживаемые способы:

1) Эти языковые расширения (C ++ / CX).

2) Библиотека шаблонов C ++ (WRL), см.
Наборы Windows \ 8.0 \ Include \ winrt \ wrl, как упоминал Янник. WRL — это C ++
решение на основе библиотеки своего рода по линии ATL, которая предлагает
что я думаю, что вы ищете — шаблон оболочки / удобство
классы и явные умные указатели и тому подобное.

7

Другие решения

Да, вы можете, настоящий родной C ++ полностью поддерживается.

Однако вам, в основном, приходится использовать новые библиотеки WinRT для выполнения пользовательского интерфейса или системных вызовов, и хотя они являются нативным кодом и полностью доступны для вызова из C ++ напрямую, интерфейс к ним делает это очень болезненным, так как все считается подсчетом ссылок COM-объект и, кроме того, создавать его экземпляры не так просто, как просто вызывать «new», поэтому вы должны написать много некрасивого кода для этого.

Как говорилось в предыдущем ответе, Microsoft предоставляет два способа помочь с этим. Один из них — через языковые расширения для c ++, а другой — для библиотеки шаблонов c ++. Лично я считаю, что и то, и другое довольно уродливо, если делать что-то простое, например, вызов API, но это только я 🙂

Но чтобы ответить на ваш вопрос, вполне возможно написать ваше приложение на реальном нативном с ++. Вам не нужно будет использовать управляемый код вообще ни для чего. Но вы, вероятно, захотите использовать языковые расширения или библиотеку шаблонов, чтобы сделать вызов API более простым.

Лично я надеюсь, что кто-то напишет оболочку для WinRT, которая предоставляет наиболее необходимые функциональные возможности в виде более удобной нативной библиотеки c ++, и тогда каждый может использовать ее вместо c ++ …

3

По вопросам рекламы [email protected]