Pergunta

Eu tenho vários projetos em que eu preciso para anexar cordas para a / CComBSTR / object _bstr_t BSTR (por exemplo, a construção de uma instrução SQL dinâmica). Existe um tipo de out-of-the-box no WinAPI para tamponar a concatenação (como StringBuilder em .NET), ou tenho de escrever meu próprio? Pelo que eu sei sobre os métodos Acrescentar, eles realizam re-alocação.

Foi útil?

Solução

Copie o BSTR em um CString, faça todas as modificações lá e então copiá-lo de volta para o BSTR / CComBSTR. alocações de CString são mais rápidos que SysAllocStringLen.

Outras dicas

Você tem que escrever o seu próprio. Você pode usar o SysAllocStringLen, ou APIs SysReallocString para obter diferentes tamanhos buffers. Eles trabalham em uma cadeia de entrada, mas você pode passar NULL para alocar um tamanho fixo, tampão uninitialised.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top