diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 8fd6f0bbc..607b86a17 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -316,8 +317,19 @@ static void do_log(int log_level, const char *msg, va_list args, void *param) vsnprintf(str, 4095, msg, args); #ifdef _WIN32 - OutputDebugStringA(str); - OutputDebugStringA("\n"); + if (IsDebuggerPresent()) { + static wstring wide_buf; + int wNum = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0); + if (wNum > 1) { + wide_buf.reserve(wNum + 1); + wide_buf.resize(wNum - 1); + MultiByteToWideChar(CP_UTF8, 0, str, -1, &wide_buf[0], + wNum); + wide_buf.push_back('\n'); + + OutputDebugStringW(wide_buf.c_str()); + } + } #else def_log_handler(log_level, msg, args2, nullptr); #endif