Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Sistem::String ke std::string dalam C .NET?
Menukar Sistem::String kepada std::string dalam C .NET
Menukar antara Sistem::String dan std::string ialah diperlukan apabila menyepadukan kod terurus dan tidak terurus dalam aplikasi C .NET. Untuk mencapai penukaran ini, anda boleh menggunakan kemudahan yang disediakan oleh perpustakaan kelas .NET Framework. Satu pendekatan yang berkesan ialah menggunakan kelas msclr::interop::marshal_context, yang diperkenalkan dalam versi terkini .NET. Begini cara ia berfungsi:
<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>
Kaedah ini menggunakan konteks marshaling untuk memudahkan penukaran. Konteks marshaling menguruskan pemindahan data antara ruang memori terurus dan tidak terurus, memastikan keselamatan dan kecekapan jenis. Ia menyediakan cara yang mudah dan boleh diselenggara untuk melakukan penukaran data antara dua jenis rentetan yang berbeza ini.
Untuk mendapatkan maklumat lanjut tentang penukaran data antara kod terurus dan tidak terurus, rujuk artikel Rangkaian Pembangun Microsoft (MSDN) di sini .
Atas ialah kandungan terperinci Bagaimana untuk Menukar Sistem::String ke std::string dalam C .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!