阅读目录
抛弃dxerr库
自Windows SDK 8.0起,
HRESULT值关于DirectX图形API的错误消息字符串映射已经加入到FormatMessage函数中。我们可以直接脱离对dxerr的依赖,并使用该函数来直接获取错误消息字符串。因此,dxerr库也就没有必要在Windows SDK 8.0以上版本保留了。FormatMessageW函数--获取格式化消息字符串
鉴于我们只是要获取错误码对应的字符串信息,这里就简单提及一下该函数的部分用法:
DWORD FormatMessageW( DWORD dwFlags, // [In]FORMAT_MESSAGE系列宏 LPCVOID lpSource, // [In]直接填NULL DWORD dwMessageId, // [In]传入函数异常时返回的HRESULT DWORD dwLanguageId, // [In]语言ID LPTSTR lpBuffer, // [In]用于输出消息字符串的缓冲区 DWORD nSize, // [In]WCHAR缓冲区可容纳元素个数 va_list *Arguments // [In]直接填NULL );DXTraceW函数
这里我将
dxerr中DXTraceW函数的实现进行了修改,由于现在错误码信息为中文,为此也顺便把错误窗口和输出也汉化了。只需要包含Windows.h和sal.h就可以使用。
函数原型:// ------------------------------ // DXTraceW函数 // ------------------------------ // 在调试输出窗口中输出格式化错误信息,可选的错误窗口弹出(已汉化) // [In]strFile 当前文件名,通常传递宏__FILEW__ // [In]hlslFileName 当前行号,通常传递宏__LINE__ // [In]hr 函数执行出现问题时返回的HRESULT值 // [In]strMsg 用于帮助调试定位的字符串,通常传递L#x(可能为NULL) // [In]bPopMsgBox 如果为TRUE,则弹出一个消息弹窗告知错误信息 // 返回值: 形参hr HRESULT WINAPI DXTraceW(_In_z_关键字:
