1. 问题:str.Format( "%d" , 255);
提示:error C2664: “void ATL::CString“const char [26]”转换为" const wchar_t * "
分析:UNICODE转换问题,在VC2005中默认使用UNICODE编码,而C字符串使用的是ASCII编码。该错误的修改方法有两种:
(1)修改工程的设定。点击“Solution Explorer”的工程名,选择右键菜单的“properties”,或者点击 “project” -> “properties”选项。在弹出的“工程名 Property pages”窗体中,选择“Genenal”选项。把Character Set的选项改为“No Set”。
(2)凡是在出现字符串的地方,加_T(),转换成宽字节,如CString strTemp = _T("aaaaaaa");或加L,CString strTemp = L"aaaaaa"。
2. 提示:error C2872: 'IServiceProvider' : ambiguous symbol
分析与解决办法: 调整自定义的头文件和包含的系统头文件,命名空间的顺序。因为位置不对很可能会引起在编译器调用时候的混淆。