¿Existe una versión de CComBSTR en búfer que haga que la concatenación de cadenas sea más eficiente?

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

  •  02-07-2019
  •  | 
  •  

Pregunta

Tengo varios proyectos en los que necesito agregar cadenas a un objeto BSTR / CComBSTR / _bstr_t (por ejemplo, construir una declaración de SQL dinámico). ¿Hay un tipo de lista para usar en el WinAPI para almacenar la concatenación (como StringBuilder en .NET), o tengo que escribir el mío? Por lo que sé sobre los métodos de anexos, realizan la reasignación.

¿Fue útil?

Solución

Copie el BSTR en un CString, realice todas las modificaciones allí y luego vuelva a copiarlo en el BSTR / CComBSTR. Las asignaciones de CString son más rápidas que SysAllocStringLen.

Otros consejos

Tienes que escribir el tuyo. Puede utilizar las API SysAllocStringLen o SysReallocString para obtener buffers de diferentes tamaños. Funcionan en una cadena de entrada, pero puede pasar NULL para asignar un búfer sin inicializar de tamaño fijo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top