Tengo una aplicación MFC en C++ que usa std :: string y std :: wstring, y frecuentemente lanza de una a la otra, y un montón de otras tonterías. Necesito estandarizar todo en un solo formato, así que me preguntaba si debería ir con CString o std :: wstring.¿Qué estructura de cadena de caracteres anchos uso? CString vs wstring
En la aplicación, necesitaré generar cadenas desde una tabla de cadenas, trabajar con muchas llamadas de Windows que requieren punteros tchar o wchar_t constantes, Editar Controles e interactuar con la API de un objeto COM que requiere BSTR.
También tengo vectores de cadenas, ¿hay algún problema con un vector de CStrings?
¿Cuál es mejor? ¿Cuáles son los pros y los contras de cada uno?
Ejemplos
BSTR para 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;
recurso de cadena a wstring
CString t;
wstring url;
t.LoadString(IDS_SCRIPTURL);
url = t;
GetProfileString() devuelve un CString.
entero en formato de cadena:
wchar_t total[32];
swprintf_s(total, 32, L"%d", trk->getInt());
wstring tot(total);
Duplicado: http://stackoverflow.com/questions/485654/pros-and-cons-of-different-string-types-in-c http://stackoverflow.com/questions/133364/how-do- you-handle-strings-in-c –
No era realmente un duplicado - Quería comparar los dos dado mi caso particular, que tenía ventajas y desventajas para ambos. – Vanwaril