Ho un'applicazione MFC in C++ che usa std :: string e std :: wstring, e frequentemente lancia da uno all'altro, e un sacco di altre sciocchezze. Ho bisogno di standardizzare tutto in un unico formato, quindi mi chiedevo se dovevo andare con CString o std :: wstring.Quale struttura a stringa di caratteri ampi utilizzo? CString vs wstring
Nell'applicazione, dovrò generare stringhe da una tabella di stringhe, lavorare con molte chiamate di Windows che richiedono puntatori tchar o wchar_t costanti, controlli di modifica e interagire con l'API di un oggetto COM che richiede BSTR.
Ho anche i vettori di stringhe, quindi c'è qualche problema con un vettore di CStrings?
Quale è il migliore? Quali sono i pro ed i contro di ognuno?
Esempi
BSTR a wstring
CComBSTR tstr;
wstring album;
if((trk->get_Info((BSTR *)&tstr)) == S_OK && tstr!= NULL)
album = (wstring)tstr;
wstring a Bstr
CComBSTR tstr = path.c_str();
if(trk->set_Info(tstr) == S_OK)
return true;
risorsa String per wstring
CString t;
wstring url;
t.LoadString(IDS_SCRIPTURL);
url = t;
GetProfileString() restituisce un CString.
intero in formato stringa:
wchar_t total[32];
swprintf_s(total, 32, L"%d", trk->getInt());
wstring tot(total);
Duplicato: http://stackoverflow.com/questions/485654/pros-and-cons-of-different-string-types-in-c http://stackoverflow.com/questions/133364/how-do- you-handle-string-in-c –
In realtà non era un duplicato - Volevo confrontare i due dati il mio caso particolare, che aveva pro e contro per entrambi. – Vanwaril