小小注意

对于 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的意义

 

 

你可能感兴趣的:(小小注意)