Windows 8 WinRT — C ++ или C ++ .NET?

Я слышал, что разработка под Windows 8 позволит использовать приложения XAML / HTML5 + C ++, но является ли это нативным неуправляемым C ++ или управляемым C ++ (ранее C ++ .NET)?

4

Решение

Среда выполнения Windows (WinRT) сама по себе является собственной неуправляемой средой, но ее можно легко вызвать из управляемых языков .NET (по сравнению с другими собственными библиотеками и печально известными P/Invoke).

Но помимо использования его из управляемых языков его также можно вызывать из C ++ / CX. Это Microsoft расширение стандарта C ++ аналогично .NET C ++ / CLI. Но в отличие от последнего это полностью нативный неуправляемый C ++. Но он поддерживает некоторые расширения C ++ / CLI, такие как ^ оператор для «управляемых» указателей. Но под капотом это не управляемые указатели мусора, а родные подсчитанные ссылки, похожие на std::shared_ptr, И он также поддерживает .NET-подобные свойства и делегаты, я думаю, а также частичные классы для работы с WinRT«s XAML фреймворк.

Кроме того, вы можете даже использовать WinRT из стандартного C ++ с использованием так называемого Библиотека шаблонов среды выполнения C ++ (WRL), хотя он считается более громоздким, чем в C ++ / CX, и вы не сможете использовать все функции, такие как easy XAML интерфейс, не уверен в этом.

7

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

Это неуправляемый C ++, который вы встраиваете в компоненты WinRT. Затем на эти компоненты могут ссылаться ваши приложения HTML5 или Win8 .NET.

2

Чтобы добавить к хорошему ответу Слагарта, вы можете написать неуправляемый C ++ для приложений WinRT (и Java Script), и они также вероятно, что Microsoft расширит эту возможность для записи неуправляемого C ++ в Windows Phone 8 (в настоящее время это невозможно), что будет главный помощник для некоторых команд разработчиков, включая мою собственную.

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