ヘッダで以下を定義
#ifdef OutputDebugString #undef OutputDebugString #endif #ifdef UNICODE #define OutputDebugString OutputDebugStringFW #define OutputDebugStringV OutputDebugStringFVW #else #define OutputDebugString OutputDebugStringFA #define OutputDebugStringV OutputDebugStringFVA #endif // !UNICODE void OutputDebugStringFA(const char *format, ...); void OutputDebugStringFW(const wchar_t *format, ...);
どこかのcppコードに以下を実装
void OutputDebugStringFVA(const char *format, va_list args) { int len = _vscprintf(format, args) + 1; char * buffer = new char[len]; vsprintf_s(buffer, len, format, args); OutputDebugStringA(buffer); delete[] buffer; } void OutputDebugStringFVW(const wchar_t *format, va_list args) { int len = _vscwprintf(format, args) + 1; wchar_t * buffer = new wchar_t[len]; vswprintf_s(buffer, len, format, args); OutputDebugStringW(buffer); delete[] buffer; } void OutputDebugStringFA(const char *format, ...) { va_list args; va_start(args, format); OutputDebugStringFVA(format, args); va_end(args); } void OutputDebugStringFW(const wchar_t *format, ...) { va_list args; va_start(args, format); OutputDebugStringFVW(format, args); va_end(args); }