读书人

MFC 使用 tinyxml,该怎么处理

发布时间: 2012-03-26 15:46:55 作者: rapoo

MFC 使用 tinyxml
你好.

在使用的时候出现了一个问题.

在 控制台的c++ 里面声明
CString 提示的是 ATL::CString

在MFC中提示的是不同的.
CString appPath = GetAppPath();
string seperator = "\\";
string fullPath = appPath.GetBuffer(0)+seperator+szFileName;// +seperator+szFileName;

这段代码才控制台可以运行.

可是在MFC中会提示

1>.\testxmlDlg.cpp(55) : error C2678: 二进制“+”: 没有找到接受“wchar_t *”类型的左操作数的运算符(或没有可接受的转换)
1> f:\vc\试试专用\firtest\testxml\testxml\tinystr.h(289): 可能是“TiXmlString operator +(const TiXmlString &,const TiXmlString &)”
1> f:\vc\试试专用\firtest\testxml\testxml\tinystr.h(290): 或 “TiXmlString operator +(const TiXmlString &,const char *)”
1> f:\vc\试试专用\firtest\testxml\testxml\tinystr.h(291): 或 “TiXmlString operator +(const char *,const TiXmlString &)”
1> 试图匹配参数列表“(wchar_t *, std::string)”时


不知道如何解决,有高手可以支招吗?

[解决办法]
appPath.GetBuffer(0) 返回wchar_t*,没法append string类型的字符串。
试试
wstring appPath(GetAppPath().GetBuffer(0));
wstring seperator("\\");
wstring fullPath = appPath + seperator + szFileName; //szFileName为wstring或者wchar_t类型



[解决办法]
你是用unicode ??
设置成多字节字符集吧.
开工程,按Alt+F7(项目-》项目属性)进入设置对话框,选择“配置属性-》常规”,在“项目默认值”中有一个字符集,选择为“使用多字节字符集”

读书人网 >C++

热点推荐