Verwenden der Marshal-Klasse zum Konvertieren zwischen System::String und std::string
Übersetzen zwischen System::String in C .NET und std::string in C können eine häufige Aufgabe sein. Die von MS bereitgestellte Klasse „marshal_context“ bietet eine saubere und effiziente Möglichkeit, dies zu erreichen.
Syntax:
<code class="CPP">msclr::interop::marshal_context context; std::string standardString = context.marshal_as<std::string>(managedString);</code>
Beispiel:
<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>
Vorteile:
Alternative Konvertierungen
Der MSDN-Artikel, auf den in der Antwort verwiesen wird, bietet auch andere Konvertierungsmethoden, wie zum Beispiel:
Das obige ist der detaillierte Inhalt vonWie konvertiert man effizient zwischen System::String und std::string in C .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!