Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah cara saya menukar System::String kepada std::string dalam C .NET?

Bagaimanakah cara saya menukar System::String kepada std::string dalam C .NET?

Barbara Streisand
Lepaskan: 2024-11-03 00:57:30
asal
565 orang telah melayarinya

How do I convert a System::String to a std::string in C   .NET?

Menukar Sistem::String kepada std::string dalam C .NET

Dalam C .NET, menukarkan Sistem::String kepada std::string boleh dicapai menggunakan ciri marshaling yang disediakan oleh Microsoft .NET Framework.

Untuk menukar System::String kepada std::string, anda boleh menggunakan kaedah marshal_as yang disediakan oleh msclr ::interop::marshal_context kelas. Kaedah ini mengambil rentetan terurus sebagai input dan mengembalikan rentetan standard yang sepadan.

Berikut ialah contoh cara menukar System::String kepada std::string:

<code class="cpp">#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>
Salin selepas log masuk

Ini coretan kod mengimport pengepala yang diperlukan, mengisytiharkan rentetan terurus dan kemudian menggunakan kaedah marshal_as untuk menukar rentetan terurus kepada rentetan standard.

Adalah penting untuk ambil perhatian bahawa ruang nama msclr::interop hanya tersedia dalam kebelakangan ini versi .NET. Jika anda menggunakan versi yang lebih lama, anda boleh menggunakan kaedah msclr::interop::marshal_as_string sebagai gantinya.

Untuk mendapatkan maklumat lanjut tentang menukar pelbagai jenis lain antara kod terurus dan tidak terurus, rujuk artikel MSDN berikut: https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/interop/marshaling-data-with-platform-invoke

Atas ialah kandungan terperinci Bagaimanakah cara saya menukar System::String kepada std::string dalam C .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan