diff --git a/functions.cpp b/functions.cpp index 42d3594..4b5570c 100644 --- a/functions.cpp +++ b/functions.cpp @@ -69,9 +69,10 @@ std::wstring LMsg( int id, ... ) { return local; va_start( args, id ); - int len = vswprintf( nullptr, 0, local, args ); + // _vscprintf doesn't count ending '\0' + int len = _vscprintf( local, args ) + 1; va_end( args ); - wchar_t *text = new wchar_t[len + 1]; + wchar_t *text = new wchar_t[len]; va_start( args, id ); vswprintf( text, len + 1, local, args ); std::wstring ret = text;