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