Как использовать «Application.Current.Terminate» с помощью cpp на WP8

Я пишу приложение C ++ DirectX без XAML для Windows Phone 8.
Я обработал клавишу возврата, потому что я хочу закрыть приложение вручную,
но я не нахожу API для cpp.

C # имеет официальный API System.Windows.Application.Current.Terminate(),
но у cpp нет пространства имен System::Windows::Application,

Я много искал, но я могу найти только метод C #.
я пробовал Windows::UI::Core::CoreWindow::GetForCurrentThread()->Close();
Это может закрыть приложение, но это вызывает Platform::COMExceptionи это не может быть решено с помощью try-catch.

//////////////////// обновление 1 /////////////

ну я нахожу

int b = 0.1*10 - 1;
int a = 1/ b;

приложение тоже выйдет.
так Windows::UI::Core::CoreWindow::GetForCurrentThread()->Close(); это не способ для близких.
может быть, это просто авария.

//////////////////// update 2 /////////////

Я нахожу API

Windows::ApplicationModel::Core::CoreApplication::Exit();

но док говорит, что

«Завершает работу приложения. Не используйте этот метод для закрытия приложения вне сценариев тестирования или отладки».

поэтому я думаю, что это не пройдет испытание.

//////////////////// update 3 /////////////

если использовать
Окна :: ApplicationModel :: Основной :: CoreApplication :: Выход ();
закрыть приложение. а затем, если я нажму значок, чтобы перезапустить приложение. это будет стоить очень очень очень много времени, чтобы начать.
может быть Windows :: ApplicationModel :: Core :: CoreApplication :: Exit () закрыть некоторые системные службы.
но если использовать исключение, чтобы закрыть приложение, оно не будет стоить много времени для запуска.

//////////////////// update 4 /////////////

если использовать
Окна :: ApplicationModel :: Основной :: CoreApplication :: Выход ();
в симуляторе не может перезапустить приложение, нажав значок снова

1

Решение

Все, что вам нужно сделать, чтобы выйти из приложения, это вырваться из CoreApplication::Run цикл while ().

Например, для примера приложения DirectX для куба по умолчанию все, что вам нужно сделать, это установить m_windowClosed переменная-член к истине.

Так что, если вы хотите, чтобы приложение заканчивалось, если вы нажмете на экран, сделайте …

void PhoneDirect3DApp1::OnPointerPressed(CoreWindow^ sender, PointerEventArgs^ args)
{
m_windowClosed = true;
}

Однако, как говорится в комментариях, вы должны позаботиться о том, чтобы правильно обработать кнопку «Назад», иначе вы не справитесь.

0

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

Других решений пока нет …

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