Konvertieren von System::String in std::string in C .NET
Konvertieren zwischen System::String und std::string ist Dies ist bei der Integration von verwaltetem und nicht verwaltetem Code in C.NET-Anwendungen erforderlich. Um diese Konvertierung zu erreichen, können Sie die von der .NET Framework-Klassenbibliothek bereitgestellten Funktionen nutzen. Ein effektiver Ansatz ist die Verwendung der Klasse msclr::interop::marshal_context, die in neueren Versionen von .NET eingeführt wurde. So funktioniert es:
<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>
Diese Methode nutzt einen Marshalling-Kontext, um die Konvertierung zu erleichtern. Der Marshalling-Kontext verwaltet die Datenübertragung zwischen verwalteten und nicht verwalteten Speicherbereichen und gewährleistet so Typsicherheit und Effizienz. Es bietet eine einfache und wartbare Möglichkeit, die Datenkonvertierung zwischen diesen beiden verschiedenen Zeichenfolgentypen durchzuführen.
Weitere Informationen zur Datenkonvertierung zwischen verwaltetem und nicht verwaltetem Code finden Sie hier im Artikel des Microsoft Developer Network (MSDN). .
Das obige ist der detaillierte Inhalt vonWie konvertiert man System::String in std::string in C .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!