Отсутствует класс ShutdownManager в приложении UWP на C ++?

В настоящее время я играю с Windows IoT Core и пытаюсь разработать приложение UWP на C ++ для Raspberry Pi 3b. Я хочу перезагрузить / выключить Pi из приложения, но не знаю, как это сделать.

В справочнике по API UWP указана Windows.System C #, соответствующая в C ++ Windows :: System. Но похоже, что не все классы доступны в C ++. В примерах UWP (C #) используется класс ShutdownManager. для перезагрузки и выключения, но его нет в пространстве имен C ++. Теперь я не уверен, как мне реализовать эту функциональность с помощью API. Есть ли другие возможности решить эту проблему для C ++?

Решение. Мне не хватало расширений Windows IoT для UWP. Их необходимо вручную добавить в Visual Studio, щелкнув правой кнопкой мыши проект, затем «Добавить» -> «Справка» -> «Универсальная Windows» -> «Расширения». Теперь у меня есть доступ к пространству имен, и я могу перезагрузить и выключить свое устройство.


person Sherrinford    schedule 03.04.2019    source источник


Ответы (1)


Но похоже, что не все классы доступны в C ++.

Означает ли это, что при создании проекта C ++ UWP он не может быть успешно собран или при запуске приложения на устройстве возникло исключение?

ShutdownManager API доступен на C ++, действительно, он включен в пространство имен Windows :: System, обратитесь к этому документ. И обратите внимание, что:

Этот API требует использования возможности IoT systemManagement и включения iot в список IgnorableNamespaces. Пользователи могут добавить следующее в свой Package.appmanifest: и добавить iot в свой существующий список IgnorableNamespaces.

Следующий код отлично работает на моем устройстве.

TimeSpan ts;
ts.Duration = 1000;
ShutdownManager::BeginShutdown(ShutdownKind::Shutdown, ts);
person Michael Xu - MSFT    schedule 04.04.2019
comment
Приложение компилируется нормально, если я не использую ни одну из этих дополнительных функций. Но вы дали мне правильное направление в том, чего мне не хватало. Необходимо явно добавить соответствующие ссылки на проект. Затем необходимо добавить расширения Windows IoT для UWP. Я соответствующим образом отредактирую свой пост. Спасибо. - person Sherrinford; 05.04.2019