【发布时间】:2010-09-13 11:40:36
【问题描述】:
我有几个项目需要将字符串附加到 BSTR/CComBSTR/_bstr_t 对象(例如构建动态 SQL 语句)。 WinAPI 中是否有开箱即用的类型来缓冲连接(如 .NET 中的 StringBuilder),还是我必须自己编写?根据我对附加方法的了解,它们执行重新分配。
【问题讨论】:
标签: string winapi concatenation
我有几个项目需要将字符串附加到 BSTR/CComBSTR/_bstr_t 对象(例如构建动态 SQL 语句)。 WinAPI 中是否有开箱即用的类型来缓冲连接(如 .NET 中的 StringBuilder),还是我必须自己编写?根据我对附加方法的了解,它们执行重新分配。
【问题讨论】:
标签: string winapi concatenation
将 BSTR 复制到 CString 中,在那里进行所有修改,然后将其复制回 BSTR/CComBSTR。 CString 的分配速度比 SysAllocStringLen 快。
【讨论】:
你必须自己写。您可以使用 SysAllocStringLen 或 SysReallocString API 来获取不同大小的缓冲区。它们作用于输入字符串,但您可以传递 NULL 来分配固定大小、未初始化的缓冲区。
【讨论】: