我使用已定义的XML_UNICODE和XML_UNICODE_WCHAR_T构建pocoXML库。现在我试着像这样编译代码:
Poco::XML::DOMParser parser;
std::wstring xml = getXml(); //Init string with xml document
// Cannot compile, cause parseString wants only std::string
// not wstring
Poco::AutoPtr<Poco::XML::Document> document = parser.parseString(xml); 也许我不能使用parseString,但是有另一种方法可以用DOMParser解析std::wstring吗?
发布于 2014-06-04 11:59:49
在只定义了XML_UNICODE_WCHAR_T的情况下,您应该能够在Windows上使用std::wstring。在POSIX平台上,您必须确保wchar_t是2字节宽(请检查__SIZEOF_WCHAR_T__定义)。使用XMLString是一种很好的实践,它是从std::basic_string中根据XML_UNICODE_WCHAR_T定义适当定义的。
但是,有一个问题阻碍了使用XML_UNICODE_WCHAR_T编译Poco::XML。已经创建了Github issue,问题现在是1.5.3 release的develop分支中的fixed。
https://stackoverflow.com/questions/24008333
复制相似问题