>>140 Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。
2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで
マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、
そのToPointerをstd::stringに代入するのが比較的簡単。
ポインタはMarshal::FreeHGlobalで解放すること。
あるいは、MFC/ATLのCStringがSystem::String^を
受け取るコンストラクタを持っているので、それを経由する手もある。
ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。