原本在VS2003中不支持的现在支持了。以下是一段测试代码,我定义了一个zyError的宏:
void zyOutput(bool bError, const TCHAR *fmt, ...)
{
TCHAR buf[1024] = {};
if (bError)
_tcscat(buf, _T("Error:"));
else
_tcscat(buf, _T("Infor:"));
va_list args;
va_start(args, fmt);
_vstprintf(buf+6, fmt, args);
va_end(args);
OutputDebugString(buf);
}
#define zyError(fmt, ...) zyOutput(1, fmt, __VA_ARGS__)
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
zyError(_T("i have %d dollars.\n"), 10000);//Error:i have 10000 dollars.