I have this piece of code (summarized)...
AnsiString working(AnsiString format,...) { va_list argptr; AnsiString buff; va_start(argptr, format);
Here's my easy workaround (compiled with Visual C++ 2010):
void not_broken(const string& format,...) { va_list argptr; _asm { lea eax, [format]; add eax, 4; mov [argptr], eax; } vprintf(format.c_str(), argptr); }