vsnprintf

C++ - global setlocale works, the same locale passed to _vsnprintf_l doesn't

I have following C++ code sample: void SetVaArgs(const char* fmt, const va_list argList) { setlocale( LC_ALL, "C" ); // 1 m_FormatBufferLen = ::_vsnprintf(m_FormatBuffer, Logger::MAX_LOGMESSAGE_SIZE, fmt, argList); setlocale( LC_ALL, "" ); //2 m_FormatBufferLen = ::_vsnprintf(m_FormatBuffer, Logger::MAX_LOGMESSAGE_SIZE, ...

va_args and 64 bits

I'm the lead dev for Bitfighter, and am having problems porting the game to 64-bit Linux. This should be a relatively easy and common problem, but it has stumped a number of people and I have been able to find no good information about it. [[ The code compiles in 32-bit with gcc version 4.1.2, and others, and fails with several variant...

vsnprintf and gcc

Hello, I have the fallowing statement: vsnprintf(target, size - 1, "%ls_%ls", str16_1, str16_2); Do you know why this fails on gcc? I used this on Windows like this: vsnprintf(target, size - 1, "%S_%S", str16_1, str16_2); and it's working as expected. On gcc documentation I found that %S is synonym with %ls, but I must not use it...