Я пишу приложение DirectX на C++ без XAML для Windows Phone 8. Я обработал клавишу возврата, потому что хочу закрыть приложение вручную, но не нашел API для cpp.
C# имеет официальный API System.Windows.Application.Current.Terminate()
, но cpp не имеет пространства имен System::Windows::Application
.
Я много искал, но могу найти только метод С#. Я пробовал 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();
не подходит для закрытия. может это просто авария.
////////////////////обновление 2//////////////
я нашел API
Windows::ApplicationModel::Core::CoreApplication::Exit();
но док говорит, что
«Завершает работу приложения. Не используйте этот метод для завершения работы приложения вне сценариев тестирования или отладки».
так что думаю тест не пройдет.
////////////////////обновление 3///////////////
если использовать Windows::ApplicationModel::Core::CoreApplication::Exit(); чтобы закрыть приложение. а затем, если я щелкну значок, чтобы перезапустить приложение. это будет стоить очень очень очень долго, чтобы начать. может быть Windows::ApplicationModel::Core::CoreApplication::Exit() закрыть какую-то системную службу. но если использовать исключение, чтобы закрыть приложение, его запуск не займет много времени.
////////////////////обновление 4//////////////
если использовать Windows::ApplicationModel::Core::CoreApplication::Exit(); в симуляторе он не может перезапустить приложение, снова щелкнув значок