Bonjour,

En cherchant dans la FAQ/tuto, Nico-pyright(c) donne une façon de convertir une System::String^ en std::string:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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