从 http://sourceforge.net/projects/tinyxml/ 下载新版本,把6个文件复制到项目中 tinystr.h tinyxml.h tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp
将CPP文件的头部加上 #include "stdafx.h" , 要使用的地方 #include "tinyxml.h"
wchar_t* CommTools::U8ToUnicode(const char* szU8)
{
int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
wchar_t* wszString = new wchar_t[wcsLen + 1];
::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);
wszString[wcsLen] = '\0';
return wszString;
}
CStringA CommTools::CStringToCStringA(CString str)
{
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (str);
// construct a std::string using the LPCSTR input
CStringA result(pszConvertedAnsiString);
return result;
}
GetText 节点的值是空返回NULL,可以先判断一下再gettext
if( cityIdEle->GetText()!=NULL )
wcscpy_s( cityInfoList[iTmpC].cID , commTools.U8ToUnicode(cityIdEle->GetText()) );
else
wcscpy_s( cityInfoList[iTmpC].cID , L"" );