XErrorSetOptions

指定在游戏 OS 或游戏运行时出现错误时所需的行为。

语法

void XErrorSetOptions(  
         XErrorOptions optionsDebuggerPresent,  
         XErrorOptions optionsDebuggerNotPresent  
)  

参数

optionsDebuggerPresent _In_
类型:XErrorOptions

指定附加调试程序时所需的行为。

optionsDebuggerNotPresent _In_
类型:XErrorOptions

指定未附加调试程序时所需的行为。

返回值

类型:void

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

使用此函数指定在游戏 OS 或游戏运行时中发生错误时游戏的反应方式。 默认情况下,如果未附加调试程序,游戏将不执行任何操作;如果已附加调试程序,游戏将向调试程序输出调试消息。

如果已附加了调试程序且 optionsDebuggerPresent 设置为 [XErrorOptions::DebugBreakOnError],则系统会强行进入调试程序并输出调试消息。 通过将全局变量的值 XErrorDisableDebugBreak 设置为 true,可以通过监视窗口暂时禁用此行为。

下面的示例阐释了如何设置错误选项、如何定义自定义错误回调以及如何设置自定义回调以接收系统的错误通知。

bool CustomGameXErrorCallback(_In_ HRESULT hr, _In_ const char* msg, _In_ void* context)  
{  
   // Capture the error to the game's custom logger  
   CustomGameLogger* logger = (CustomGameLogger*)context;  
   logger->ReportGameRuntimeIssue(hr, msg);  
  
   // Don't ignore the error. For example, continue on and do whatever  
   // is specified by XErrorSetOptions().  
   return true;  
}  
  
void SomeGameFunction()  
{  
   // Previously initialize the game's custom logger  
   // CustomGameLogger* m_logger = InitializeLogger();  
   // ...  
  
   // Setup how you want to handle XErrors  
   XErrorSetOptions(DebugBreakOnError, FailFastOnError);
   XErrorSetCallback(CustomGameXErrorCallback, m_logger);
}  

要求

头文件:XError.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XError 成员
XErrorOptions