marshal_as

Cette méthode convertit les données entre les environnements natifs et managés.

Syntaxe

To_Type marshal_as<To_Type>(
   From_Type input
);

Paramètres

input
[in] Valeur à marshaler sur une To_Type variable.

Valeur de retour

Variable de type To_Type qui est la valeur convertie de input.

Notes

Cette méthode est un moyen simplifié de convertir des données entre les types natifs et managés. Pour déterminer quels types de données sont pris en charge, consultez Vue d’ensemble du marshaling en C++. Certaines conversions de données nécessitent un contexte. Vous pouvez convertir ces types de données à l’aide de la classe marshal_context.

Si vous essayez de marshaler une paire de types de données qui ne sont pas pris en charge, marshal_as génère une erreur C4996 au moment de la compilation. Lisez le message fourni avec cette erreur pour plus d’informations. L’erreur C4996 peut être générée pour plus que de simplement déprécier les fonctions. Par exemple, nous essayons de marshaler une paire de types de données qui ne sont pas pris en charge.

La bibliothèque de marshaling se compose de plusieurs fichiers d’en-tête. Toute conversion ne nécessite qu’un seul fichier, mais vous pouvez inclure des fichiers supplémentaires si vous avez besoin d’autres conversions. Pour voir quelles conversions sont associées aux fichiers, recherchez dans la table dans Marshaling Overview. Quelle que soit la conversion que vous souhaitez effectuer, l’exigence d’espace de noms est toujours en vigueur.

Lève System::ArgumentNullException(_EXCEPTION_NULLPTR) si le paramètre d’entrée a la valeur Null.

Exemple

Cet exemple marshale d’un const char* type de variable à un System::String type de variable.

// marshal_as_test.cpp
// compile with: /clr
#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>

using namespace System;
using namespace msclr::interop;

int main() {
   const char* message = "Test String to Marshal";
   String^ result;
   result = marshal_as<String^>( message );
   return 0;
}

Spécifications

Fichier d’en-tête :<msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h> ou <msclr\marshal_atl.h>

Espace de noms : msclr ::interop

Voir aussi

Vue d’ensemble du marshaling en C++
marshal_context Class