Header

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//#define NO_DEBUG_PRINT
#ifdef NO_DEBUG_PRINT
#define DEBUG_PRINT
#else
static void _PrintDebugString(const WCHAR *format, ...) {
    WCHAR buf[1024];
    va_list vaList;
    va_start(vaList, format);
    _vsnwprintf_s(buf, sizeof(buf), format, vaList);
    va_end(vaList);
    OutputDebugStringW(buf);
}
static void _PrintDebugString(const char *format, ...) {
    char buf[1024];
    va_list vaList;
    va_start(vaList, format);
    _vsnprintf_s(buf, sizeof(buf), format, vaList);
    va_end(vaList);
    OutputDebugStringA(buf);
}
#define DEBUG_PRINT _PrintDebugString
#endif

Source

1
2
3
// Usage examples
DEBUG_PRINT("Hello World: %s", char_string);
DEBUG_PRINT(L"Hello World: %s", wchar_string);