孙鑫那本教材上第5章:文本编程中,有用到字符串加法+=,平台是VC6.0,可是在VS2010中,编译出错,百度得到问题解答如下:
CString 有两个 += 的运算符重载,一个接受 LPCTSTR 类型的参数,用于在当前 CString 对象的末尾追加一个字符串;另一个接受 TCHAR 类型的参数,用于在当前 CString 对象的末尾追加一个字符。 UINT 不能隐式转换为 TCHAR 类型,也不能隐式转换为 LPCTSTR,所以编译器无法得知你要调用哪个运算符重载。 你必须把 nChar 强制转换为 TCHAR。
书中语句:m_strLine = m_strLine + nChar; //nChar是UINT型
应该改为m_strLine = m_strLine + (TCHAR)nChar;