-
Notifications
You must be signed in to change notification settings - Fork 0
/
DXTrace.h
50 lines (42 loc) · 1.5 KB
/
DXTrace.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//***************************************************************************************
// DXTrace.h by X_Jun(MKXJun) (C) 2018-2019 All Rights Reserved.
// Licensed under the MIT License.
//
// DirectX错误追踪
// DirectX Error Tracing.
//***************************************************************************************
#ifndef DXTRACE_H
#define DXTRACE_H
#include <Windows.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_ const WCHAR* strFile, _In_ DWORD dwLine, _In_ HRESULT hr, _In_opt_ const WCHAR* strMsg, _In_ bool bPopMsgBox);
// ------------------------------
// HR宏
// ------------------------------
// Debug模式下的错误提醒与追踪
#if defined(DEBUG) | defined(_DEBUG)
#ifndef HR
#define HR(x) \
{ \
HRESULT hr = (x); \
if(FAILED(hr)) \
{ \
DXTraceW(__FILEW__, (DWORD)__LINE__, hr, L#x, true);\
} \
}
#endif
#else
#ifndef HR
#define HR(x) (x)
#endif
#endif
#endif