Marshal a string from managed to unmanaged
I need to pass a string from C++/CLI managed to C++ unmanaged code.
The unmanaged function takes a LPCTSTR as parameter and I want to pass a String^. How do I do that?
The answer here:
http://msdn2.microsoft.com/en-gb/library/ms235282(VS.80).aspx
The unmanaged function takes a LPCTSTR as parameter and I want to pass a String^. How do I do that?
The answer here:
http://msdn2.microsoft.com/en-gb/library/ms235282(VS.80).aspx
And a function to do it easily:
LPCTSTR MarshalString(String^ managedString)
{ return (LPCTSTR)Marshal::StringToHGlobalUni (managedString).ToPointer();}
and back:
String^ DiagramContainer::MarshalString(LPCTSTR nativeString)
{return Marshal::PtrToStringAuto(IntPtr((void *)nativeString));
}
