C++中过长的 string 转为 _bstr_t 失败问题的解决方法

bool CElement::LoadXML(std::string const & xml, int depth) { try { _bstr_t bstrXmlSum = ""; bstrXmlSum = xml.c_str();//编程实践中,当xml为5百多K的时候,这一句会抛出异常 return RawLoadXML(bstrXmlSum, depth); } catch (...) { Log("解析 XML 文件时发生了未知错误。"); return false; } }  

 

后来网络调查,据说如果 string 过长(5百多吧),转化为 _bstr_t 时会抛异常, 所以将 string 分成多段短的 string后分别转换为_bstr_t 后再将所得的 _bstr_t 字符串连接即可。

你可能感兴趣的:(C++)