关于字符串与CCOMBSTR

今天在使用ccombstr的时候 需要做一个替换的功能,然后意外的是发现替换虽然执行了,结果却是无效的。

 

刚开始怀疑与cstring使用bstr指针构造来的有影响,但换成=号进行赋值构造,问题仍然存在;

然后把replace的参数中,从ccombstr构造来的参数均换成=号构造,并直接使用cstring类型参数之后结果正常:

CString sVal = bsVal;

CString sOld = m_bsReplace;

CString sNew = m_bsReplaceo;

int n = sVal.Replace( sOld, sNew);

 

经过此事,bstr中的长度前缀可能对结果造成了影响。

以后也将想慎重使用构造函数强制转换。

上一篇:c-如何正确调用IDispatch :: Invoke与所需的BSTR *参数


下一篇:vue点击下载图片