I have my answer. I will post it so that it is in the archives incase anyone else needs it.
System::String^ CString2DotNetOut()
{
char* cString = "20 chars for testing";
System::String^ sString = System::Runtime::InteropServices::Marshal::PtrToStringAnsi(System::IntPtr(cString));
return sString;
}
void DotNetString2CStringOut(System::String^ sString)
{
char* cString = (char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(sString).ToPointer();
cout << cString;
}
FDB