Maison > développement back-end > C++ > Comment convertir un System::String en std::string en C .NET ?

Comment convertir un System::String en std::string en C .NET ?

Barbara Streisand
Libérer: 2024-11-03 00:57:30
original
564 Les gens l'ont consulté

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

Conversion de System::String en std::string en C .NET

En C .NET, conversion d'un System::String en une std::string peut être obtenue à l'aide de la fonctionnalité de marshaling fournie par Microsoft .NET Framework.

Pour convertir un System::String en std::string, vous pouvez utiliser la méthode marshal_as fournie par msclr Classe ::interop::marshal_context. Cette méthode prend la chaîne gérée en entrée et renvoie la chaîne standard correspondante.

Voici un exemple de la façon de convertir un System::String en 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>
Copier après la connexion

This L'extrait de code importe les en-têtes nécessaires, déclare une chaîne gérée, puis utilise la méthode marshal_as pour convertir la chaîne gérée en chaîne standard.

Il est important de noter que l'espace de noms msclr::interop n'est disponible que dans les versions récentes. versions de .NET. Si vous utilisez une ancienne version, vous pouvez utiliser la méthode msclr::interop::marshal_as_string à la place.

Pour plus d'informations sur la conversion de divers autres types entre code managé et non managé, reportez-vous à l'article MSDN suivant : https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/interop/marshaling-data-with-platform-invoke

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal