View Full Version : [C++] Conversione di managed string in array di char
darkestsky
16-03-2008, 09:32
Ciao a tutti,
Sto cercando un modo semplice per convertire stringhe "managed" in array di caratteri in Visual C++ 2005 Express Edition (Windows Forms application). Qualche idea?
kernel::panic
16-03-2008, 19:59
Se vuoi un array Managed basta fare "stringa".ToCharArray();
Se invece vuoi un reale puntatore è un pò più incasinato... Purtroppo non ho mail lavorato col C++ Managed, ma la funzione Marshal.StringToHGlobal???() dovrebbe funzionare come in C#...
Questo è un esempio in C#:
IntPtr ptrANSI = IntPtr.Zero;
IntPtr ptrUnicode = IntPtr.Zero;
try
{
// Il char* del C++
char* pippo = (char*)(ptrANSI = Marshal.StringToHGlobalAnsi("pippo ANSI"));
// Il wchar_t* del C++
char* pluto = (char*)(ptrUnicode = Marshal.StringToHGlobalUni("pluto UNICODE"));
// usa pippo & pluto
}
catch
{ }
finally
{
if(ptrANSI != IntPtr.Zero)
Marshal.FreeHGlobal(ptrANSI);
if(ptrUnicode != IntPtr.Zero)
Marshal.FreeHGlobal(ptrUnicode);
}
PS: potresti provare anche l'oggetto StringBuilder che nelle chiamate alla API di sistema può sostituire il char*
Ciao ;)
darkestsky
19-03-2008, 22:39
Grazie...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.