是否有CComBSTR的缓冲版本使字符串连接更有效?

时间:2008-09-26 14:38:10

标签: string winapi concatenation

我有几个项目需要将字符串附加到BSTR / CComBSTR / _bstr_t对象(例如,构建动态SQL语句)。 WinAPI中是否有一个开箱即用的类型来缓冲连接(如.NET中的StringBuilder),还是我必须自己编写?根据我对附加方法的了解,他们会执行重新分配。

2 个答案:

答案 0 :(得分:2)

你必须自己写。您可以使用SysAllocStringLen或SysReallocString API来获取不同大小的缓冲区。它们处理输入字符串,但您可以传递NULL以分配固定大小的未初始化缓冲区。

答案 1 :(得分:2)

将BSTR复制到CString中,在那里进行所有修改,然后将其复制回BSTR / CComBSTR。 CString的分配比SysAllocStringLen快。