对于 void DbgLog ( LPCTSTR lpszFormat, ... )和void AFX_CDECL Format(UINT lpszFormat, ...)这样的函数在传参数一定要按照格式来,Format我们常用,估计不会怎么出错,但很少人注意到他们的参数形式( LPCTSTR lpszFormat, ... ),应用的时候如果传递常量字符串过去,字符串中没有格式化字符没有问题,但一旦有了多个格式化字符%时,很容易出错;
以format为例
例如:
CString str
str.Format("weyeruerutrityioyuo");
str.Format("%d/VC%2sDK/");不会报错
str.Format("%d%d%d%d%d%d%d/VC%2sDK/");报错,程序崩溃
注意参数LPCTSTR lpszFormat的意义