String^ => std::string que choisir ?
Bonjour,
En cherchant dans la FAQ/tuto, Nico-pyright(c) donne une façon de convertir une System::String^ en std::string:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
std::string convertStringToStlString (String ^ chaine)
{
char * chaineChar;
pin_ptr<const wchar_t> wch = PtrToStringChars(chaine);
int taille = (chaine->Length+1) * 2;
chaineChar = new char[taille];
int t = WideCharToMultiByte(CP_ACP, 0, wch, taille, NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, wch, taille, chaineChar, t, NULL, NULL);
std::string chaineSTL = chaineChar;
delete chaineChar;
return chaineSTL;
} |
ailleurs, j'ai trouvé la méthode :
Code:
1 2 3 4 5 6 7 8 9 10
|
#include <windows.h>
#include <atlstr.h>
...
std::string convertStringToStlString (String ^ chaine)
{
CString cChaine(chaine);
std::string stlChaine(cChaine);
return stlChaine;
} |
Je voulais savoir s'il y avait une différence et si oui, y a-t-il des avantages/inconvénients à l'une ou l'autre ?
Ou encore s'il y a d'autres façons plus optimales pour effectuer cette conversion.
Merci :D