ヘッダで以下を定義
#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);
}