Existe-t-il une version en mémoire tampon de CComBSTR qui améliore l'efficacité de la concaténation de chaînes?

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

  •  02-07-2019
  •  | 
  •  

Question

J'ai plusieurs projets pour lesquels je dois ajouter des chaînes à un objet BSTR / CComBSTR / _bstr_t (par exemple, la création d'une instruction SQL dynamique). Existe-t-il un type prêt à l'emploi dans WinAPI pour mettre en mémoire tampon la concaténation (comme StringBuilder dans .NET) ou dois-je écrire le mien? D'après ce que je sais des méthodes append, elles effectuent une réallocation.

Était-ce utile?

La solution

Copiez le BSTR dans un CString, effectuez toutes les modifications et copiez-le dans le BSTR / CComBSTR. Les allocations de CString sont plus rapides que SysAllocStringLen.

Autres conseils

Vous devez écrire le vôtre. Vous pouvez utiliser les API SysAllocStringLen ou SysReallocString pour obtenir des tampons de tailles différentes. Ils fonctionnent sur une chaîne d'entrée, mais vous pouvez passer NULL pour allouer un tampon non initialisé de taille fixe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top