diff --git a/Jupiter/CString_Imp.h b/Jupiter/CString_Imp.h index efcd5ff..b50f304 100644 --- a/Jupiter/CString_Imp.h +++ b/Jupiter/CString_Imp.h @@ -42,8 +42,10 @@ #if defined _WIN32 #define JUPITER_VSCPRINTF(format, format_args) _vscprintf(format, format_args) +#define JUPITER_VSCWPRINTF(format, format_args) _vscwprintf(format, format_args) #else // _WIN32 #define JUPITER_VSCPRINTF(format, format_args) vsnprintf(nullptr, 0, format, format_args) +#define JUPITER_VSCWPRINTF(format, format_args) vswprintf(nullptr, 0, format, format_args) #endif // _WIN32 #endif // JUPITER_VSCPRINTF @@ -166,7 +168,7 @@ template<> size_t inline Jupiter::CString_Type::vformat(const wchar_t * int minLen; va_list sargs; va_copy(sargs, args); - minLen = vswprintf(nullptr, 0, format, sargs); + minLen = JUPITER_VSCWPRINTF(format, sargs); va_end(sargs); if (minLen < 0) return 0; // We simply can not work with this. this->setBufferSizeNoCopy(minLen); @@ -205,7 +207,7 @@ template<> size_t inline Jupiter::CString_Type::avformat(const wchar_t int minLen; va_list sargs; va_copy(sargs, args); - minLen = vswprintf(nullptr, 0, format, sargs); + minLen = JUPITER_VSCWPRINTF(format, sargs); va_end(sargs); if (minLen < 0) return 0; // We simply can not work with this. this->setBufferSize(minLen + Jupiter::String_Type::length); diff --git a/Jupiter/String_Imp.h b/Jupiter/String_Imp.h index 7e093a9..4f10b88 100644 --- a/Jupiter/String_Imp.h +++ b/Jupiter/String_Imp.h @@ -41,8 +41,10 @@ #if defined _WIN32 #define JUPITER_VSCPRINTF(format, format_args) _vscprintf(format, format_args) +#define JUPITER_VSCWPRINTF(format, format_args) _vscwprintf(format, format_args) #else // _WIN32 #define JUPITER_VSCPRINTF(format, format_args) vsnprintf(nullptr, 0, format, format_args) +#define JUPITER_VSCWPRINTF(format, format_args) vswprintf(nullptr, 0, format, format_args) #endif // _WIN32 #endif // JUPITER_VSCPRINTF @@ -125,7 +127,7 @@ template<> size_t inline Jupiter::String_Strict::vformat(const wchar_t int minLen; va_list sargs; va_copy(sargs, args); - minLen = vswprintf(nullptr, 0, format, sargs); + minLen = JUPITER_VSCWPRINTF(format, sargs); va_end(sargs); if (minLen < 0) return 0; // We simply can not work with this. @@ -163,7 +165,7 @@ template<> size_t inline Jupiter::String_Strict::avformat(const wchar_t int minLen; va_list sargs; va_copy(sargs, args); - minLen = vswprintf(nullptr, 0, format, sargs); + minLen = JUPITER_VSCWPRINTF(format, sargs); va_end(sargs); if (minLen < 0) return 0; // We simply can not work with this. this->setBufferSize(minLen + Jupiter::String_Type::length + 1); // vsnprintf REQUIRES space for an additional null character. @@ -415,7 +417,7 @@ template<> size_t inline Jupiter::String_Loose::vformat(const wchar_t * int minLen; va_list sargs; va_copy(sargs, args); - minLen = vswprintf(nullptr, 0, format, sargs); + minLen = JUPITER_VSCWPRINTF(format, sargs); va_end(sargs); if (minLen < 0) return 0; // We simply can not work with this. @@ -453,7 +455,7 @@ template<> size_t inline Jupiter::String_Loose::avformat(const wchar_t int minLen; va_list sargs; va_copy(sargs, args); - minLen = vswprintf(nullptr, 0, format, sargs); + minLen = JUPITER_VSCWPRINTF(format, sargs); va_end(sargs); if (minLen < 0) return 0; // We simply can not work with this. this->setBufferSize(minLen + Jupiter::String_Type::length + 1); // vsnprintf REQUIRES space for an additional null character. diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index f3edbf6..b068dac 100644 Binary files a/Release/Jupiter.lib and b/Release/Jupiter.lib differ