Существует ли буферизованная версия CComBSTR, которая делает конкатенацию строк более эффективной? - PullRequest
0 голосов
/ 26 сентября 2008

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

Ответы [ 2 ]

2 голосов
/ 26 сентября 2008

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

2 голосов
/ 26 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...