写c++代码时遇到了关于CString的一些问题,收录如下:

问题:未定义标识符“CString”

在这里插入图片描述
解决方案:
添加c++头文件#include <atlstr.h>


问题:没有与参数列表匹配的重载函数——Format
CString errormessage;
errormessage.Format("错误信息:%s", e.ErrorMessage());

在这里插入图片描述
解决方案:
1,添加c++头文件 #include <cstringt.h>
2,格式改为:

errormessage.Format(_T(“错误信息:%s”), e.ErrorMessage());

errormessage.Format(L(“错误信息:%s”), e.ErrorMessage());

解释:
注意字符(串)有两种类型,char()和wchar_t()型,分别用于多字节字符和unicode字符,两种类型分别有一套对应的字符串处理函数(包括C/C++标准库,WindowsAPI,MFC等)。MFC的类和函数会根据工程设置(默认为wchar_t)自动匹配,因此这时Format要求的字符串参数为wchar_t*,所以要在字符串前加上“L”表示是wchar_t型字符串,或者加上_T(),_T同样会根据工程设置自动匹配char或wchar_t。



资料来源:
1,https://bbs.csdn.net/wap/topics/80008953
2,https://blog.csdn.net/xiaopang1122/article/details/53813956

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐