如何使用“Application.Current.”终止在WP8上使用cpp

How to use “Application.Current.Terminate” using cpp on WP8

本文关键字:WP8 cpp 终止 何使用 Application Current      更新时间:2023-10-16

我正在为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();
它可以关闭应用程序,但它会引起Platform::COMException,并且无法通过try-catch解决。

////////////////////更新1/////////////

我发现

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

app也会退出。所以Windows::UI::Core::CoreWindow::GetForCurrentThread()->Close();不是一个接近的方法。也许这只是一次车祸。

////////////////////更新2/////////////

我找到了一个API

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

但是doc说

"关闭应用程序。在测试或调试场景之外,不要使用此方法关闭应用程序。"

所以我认为它不会通过测试。

////////////////////更新3/////////////

如果使用

Windows:: ApplicationModel::核心::CoreApplication:退出();要关闭应用程序,然后如果我点击图标重新启动应用程序。这将花费非常非常长的时间来启动。可能是Windows::ApplicationModel::Core::CoreApplication::Exit()关闭某些系统服务。但是,如果使用异常关闭应用程序,它将不会花费很长时间启动。

////////////////////更新4/////////////

如果使用

Windows:: ApplicationModel::核心::CoreApplication:退出();在模拟器中,不能再次点击图标重新启动应用程序

退出应用程序所需要做的就是跳出CoreApplication::Run while()循环。

例如,对于默认的模板立方体DirectX样例应用程序,你所需要做的就是将m_windowClosed成员变量设置为true。

如果你想让程序在点击屏幕时结束,点击…

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

然而,正如评论所说,你必须注意适当地处理后退按钮,否则你将失败。