AppendFormat
VC++6.0 的CString 类没有AppendFormat ,甚是不方便 自己动手添加一个:
class AnsiString : public CString
{
public:
AnsiString();
~AnsiString();
operator =(int ival )
{
CString::Format("%d",ival);
}
void AFX_CDECL AppendFormat(
LPCTSTR lpszFormat, ... )
{
CString strTemp;
va_list va ;
va_start(va,lpszFormat);
strTemp.FormatV(lpszFormat,va);
va_end(va);
CString::operator +=(strTemp) ;
}
};
函数的调用示例:
AnsiString s;
s = 100 ;
s.AppendFormat("-%s","中文123") ;
SetDlgItemText(IDC_STATIC1,s);
其中CString::FormatV函数中计算buff长度的功能,在vc2005使用下面的函数代替了。
int nLength = _vscprintf( pszFormat, args );
_vscprintf这个函数在VC6.0里面是没有的。
vc6.0使用_vstprintf完成格式化 _vstprintf(m_pchData, lpszFormat, argListSave) ;
VC2005使用vswprintf_s函数完成格式化 vsprintf_s( pszBuffer, nlength, pszFormat, args );