我正在为 Windows Phone 8 编写一个不带 XAML 的 C++ DirectX 应用程序。我处理了后退键,因为我想手动关闭应用程序,但我找不到 cpp 的 API。
C# 有官方 API System.Windows.Application.Current.Terminate()
,但 cpp 没有命名空间System::Windows::Application
。
我搜索了很多,但我只能找到 C# 方法。我试过Windows::UI::Core::CoreWindow::GetForCurrentThread()->Close();
它可以关闭应用程序,但它会导致 a 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(); 在模拟器中,它无法通过再次单击图标重新启动应用程序