我正在为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();
不是关闭的方式。
也许这只是一场崩溃。
//////////////////// update 2 /////////////
我找到了一个API
Windows::ApplicationModel::Core::CoreApplication::Exit();
但是医生说
“关闭应用程序。请勿使用此方法在测试或调试方案之外关闭应用程序。”
所以我认为它不会通过测试。
////////////////////更新3 /////////////
如果使用 视窗:应用模型::核心:: CoreApplication ::退出(); 关闭应用程序然后如果我点击图标重新启动应用程序。这将需要非常长的时间才能开始。 可能是Windows :: ApplicationModel :: Core :: CoreApplication :: Exit()关闭一些系统服务。 但如果使用例外来关闭应用程序,则启动时间不会太长。
////////////////////更新4 /////////////
如果使用 视窗:应用模型::核心:: CoreApplication ::退出(); 在模拟器中,它无法通过再次单击图标重新启动应用程序
答案 0 :(得分:0)
退出应用程序所需要做的就是跳出CoreApplication::Run
while()循环。
例如,对于默认模板多维数据集DirectX示例应用程序,您需要做的就是将m_windowClosed
成员变量设置为true。
因此,如果您希望在点按屏幕时结束该应用,请执行...
void PhoneDirect3DApp1::OnPointerPressed(CoreWindow^ sender, PointerEventArgs^ args)
{
m_windowClosed = true;
}
然而,正如评论所说,你必须小心处理后退按钮,否则你将失败证书。