Heim >Backend-Entwicklung >C++ >Wie konvertiere ich einen System::String in einen std::string in C .NET?
Konvertieren von System::String in std::string in C .NET
Konvertieren eines System::String in C .NET Ein std::string kann mithilfe der Marshalling-Funktion des Microsoft .NET Framework erreicht werden.
Um einen System::String in einen std::string zu konvertieren, können Sie die von msclr bereitgestellte Methode Marshal_as verwenden ::interop::marshal_context-Klasse. Diese Methode verwendet die verwaltete Zeichenfolge als Eingabe und gibt die entsprechende Standardzeichenfolge zurück.
Hier ist ein Beispiel für die Konvertierung eines System::String in einen 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>
Dies Das Code-Snippet importiert die erforderlichen Header, deklariert eine verwaltete Zeichenfolge und konvertiert dann die verwaltete Zeichenfolge mithilfe der Methode „marshal_as“ in eine Standardzeichenfolge.
Es ist wichtig zu beachten, dass der Namespace „msclr::interop“ nur in „Recent“ verfügbar ist Versionen von .NET. Wenn Sie eine ältere Version verwenden, können Sie stattdessen die Methode msclr::interop::marshal_as_string verwenden.
Weitere Informationen zum Konvertieren verschiedener anderer Typen zwischen verwaltetem und nicht verwaltetem Code finden Sie im folgenden MSDN-Artikel: https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/interop/marshaling-data-with-platform-invoke
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen System::String in einen std::string in C .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!