Utilisation de la classe Marshal pour convertir entre System::String et std::string
Traduction entre System::String en C .NET et std::string en C peut être une tâche courante. La classe marshal_context fournie par MS fournit un moyen propre et efficace d'y parvenir.
Syntaxe :
<code class="CPP">msclr::interop::marshal_context context; std::string standardString = context.marshal_as<std::string>(managedString);</code>
Exemple :
<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>
Avantages :
Conversions alternatives
L'article MSDN référencé par la réponse fournit également d'autres méthodes de conversion, telles que :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!