Существует ли буферизованная версия CComBSTR, которая делает конкатенацию строк более эффективной?

StackOverflow https://stackoverflow.com/questions/139927

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть несколько проектов, в которых мне нужно добавить строки к объекту BSTR/CComBSTR/_bstr_t (например.построение динамического оператора SQL).Есть ли в WinAPI готовый тип для буферизации конкатенации (например, StringBuilder в .NET) или мне придется написать свой собственный?Насколько я знаю о методах добавления, они выполняют перераспределение.

Это было полезно?

Решение

Скопируйте BSTR в CString, внесите все изменения, а затем скопируйте его обратно в BSTR/CComBSTR.Выделение CString происходит быстрее, чем SysAllocStringLen.

Другие советы

Вы должны написать свой собственный.Вы можете использовать API-интерфейсы SysAllocStringLen или SysReallocString для получения буферов разного размера.Они работают с входной строкой, но вы можете передать NULL, чтобы выделить неинициализированный буфер фиксированного размера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top