Esiste una versione bufferizzata di CComBSTR che rende più efficiente la concatenazione di stringhe?
-
02-07-2019 - |
Domanda
Ho diversi progetti in cui ho bisogno di aggiungere stringhe a un oggetto BSTR / CComBSTR / _bstr_t (ad esempio la creazione di un'istruzione SQL dinamica). Esiste un tipo out-of-the-box in WinAPI per bufferizzare la concatenazione (come StringBuilder in .NET) o devo scrivere il mio? Da quello che so sui metodi append, eseguono la riassegnazione.
Soluzione
Copia il BSTR in un CString, fai tutte le modifiche lì e poi copialo nel BSTR / CComBSTR. Le allocazioni di CString sono più veloci di SysAllocStringLen.
Altri suggerimenti
Devi scrivere il tuo. È possibile utilizzare le API SysAllocStringLen o SysReallocString per ottenere buffer di dimensioni diverse. Funzionano su una stringa di input, ma è possibile passare NULL per allocare un buffer non inizializzato di dimensioni fisse.