J'ai plusieurs projets où j'ai besoin d'ajouter des chaînes à un objet BSTR/CComBSTR/_bstr_t (par exemple, créer une instruction SQL dynamique). Existe-t-il un type out-of-the-box dans le WinAPI pour tamponner la concaténation (comme StringBuilder dans .NET), ou dois-je écrire le mien? D'après ce que je connais des méthodes d'ajout, ils effectuent une réallocation.Y at-il une version tamponnée de CComBSTR qui rend la concaténation de chaînes plus efficace?
0
A
Répondre
2
Copiez le BSTR dans un CString, faites-y toutes les modifications, puis copiez-le dans le BSTR/CComBSTR. Les allocations de CString sont plus rapides que SysAllocStringLen.
2
Vous devez créer 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.
Questions connexes
- 1. Concaténation de chaînes
- 2. Chaînes de concaténation SQL?
- 3. Concaténation de chaînes dans Lua
- 4. Pourquoi plus de variables longues provoquent concaténation?
- 5. Comment faire une concaténation de chaînes dans gdb/ada
- 6. SQLite Update Syntaxe pour la concaténation de chaînes?
- 7. Manière plus efficace de décaper une chaîne
- 8. Insertion efficace et recherche de chaînes
- 9. MySQL - Définir la valeur par défaut pour le champ comme une fonction de concaténation de chaînes
- 10. Problème de liaison qui me rend fou
- 11. Comparer Classe Le plus efficace?
- 12. Y at-il une fonction qui compare les longueurs de chaînes en conséquence en C# (.NET)?
- 13. La façon la plus élégante de convertir un tableau de chaînes en un dictionnaire de chaînes
- 14. Le moyen le plus efficace de Python de choisir la plus longue chaîne dans la liste?
- 15. La méthode de copie la plus rapide/la plus efficace entre S3 et EC2?
- 16. Quelle est la manière la plus élégante et la plus efficace de modéliser une hiérarchie d'objets de jeu? (Conception dérange)
- 17. WPF: Manière plus efficace d'afficher des images qui changent rapidement?
- 18. stratégie de suppression de ligne la plus efficace pour QStandardItemModel
- 19. comment rendre la requête sqlite plus efficace?
- 20. Qu'est-ce qui rend une instruction SQL sargable?
- 21. Quelle est la solution de journalisation la plus efficace et la plus performante pour ASP.NET?
- 22. Méthode la plus efficace pour surveiller une file d'attente
- 23. Chaîne de concaténation vs String Builder. Performance
- 24. varchar - Une puissance de deux est-elle plus efficace?
- 25. Chaîne de concaténation VS format de chaîne
- 26. Algorithme le plus efficace pour générer une carte de site?
- 27. Java Image Editor qui rend la sortie comme code source?
- 28. Quoi de plus efficace i ++ ou ++ i?
- 29. Le moyen le plus efficace d'obtenir une ligne de données à partir de DB dans ASP.NET
- 30. Concaténation d'un nombre arbitraire de lignes de chaînes dans mysql (requête hiérarchique)
Mais CString gère-t-il les NUL embarqués de la même manière que BSTR? – Constantin
Oui. CString NULLs mainless très bien. –