c++ - 如何在WP8上使用cpp使用 “Application.Current.Terminate”

标签 c++ windows-phone-8 terminate

我正在为 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;

应用程序也会退出。 所以 Windows::UI::Core::CoreWindow::GetForCurrentThread()->Close(); 不是关闭的方式。 也许这只是一次崩溃。

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

我找到一个 API

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

但是医生是这么说的

"Shuts down the app. Do not use this method to shut down an app outside of testing or debugging scenarios."

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

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

如果使用 Windows::ApplicationModel::Core::CoreApplication::Exit(); 关闭应用程序。然后如果我单击图标以重新启动应用程序。这将花费非常非常长的时间才能开始。 可能是 Windows::ApplicationModel::Core::CoreApplication::Exit() 关闭了一些系统服务。 但如果使用异常关闭应用程序,则启动时间不会很长。

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

如果使用 Windows::ApplicationModel::Core::CoreApplication::Exit(); 在模拟器中,它无法通过再次单击图标重新启动应用程序

最佳答案

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

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

因此,如果您希望应用在您点击屏幕时结束,请执行...

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

然而,正如评论所说,您必须注意适本地处理后退按钮,否则您将无法通过认证。

关于c++ - 如何在WP8上使用cpp使用 “Application.Current.Terminate”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976483/

相关文章:

c++ - 动态增加和减少字符数组?

audio - WASAPI 捕获缓冲区大小

multithreading - 当您终止()一个线程(TThread 类)时,它是否会退出该线程的每个子线程?

C++ 创建对象的全局引用

c++ - Arduino Mega2560 设置中断

c# - Windows Phone 8 中的自动扩展列表 - xaml

java - 如果不再引用该对象,那么 "thread of the object"扩展线程会发生什么情况?

objective-c - 为什么即使我释放了大量内存以响应内存警告,iOS 也会终止我的应用程序?

c++ - std 不包含,但它应该已经添加了库

c# - 如何以编程方式单击 Windows Phone 的屏幕?