Menggunakan Kelas Marshal untuk Menukar antara Sistem::String dan std::string
Menterjemah antara Sistem::String dalam C .NET dan std::string dalam C boleh menjadi tugas biasa. Kelas marshal_context yang disediakan oleh MS menyediakan cara yang bersih dan cekap untuk mencapainya.
Sintaks:
<code class="CPP">msclr::interop::marshal_context context; std::string standardString = context.marshal_as<std::string>(managedString);</code>
Contoh:
<code class="CPP">#include "stdafx.h" #include <string> #include <msclr/marshal_cppstd.h> using namespace System; int main(array<System::String ^> ^args) { System::String^ managedString = "test"; msclr::interop::marshal_context context; std::string standardString = context.marshal_as<std::string>(managedString); return 0; }</code>
Faedah:
Penukaran Alternatif
Artikel MSDN yang dirujuk oleh jawapan juga menyediakan kaedah penukaran lain, seperti:
Atas ialah kandungan terperinci Bagaimana untuk Cekap Menukar Antara Sistem::String dan std::string dalam C .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!