marshal_as
Cette méthode convertit des données entre les environnements managés.
To_Type marshal_as<To_Type>(
From_Type input
);
Paramètres
- [in] input
La valeur que vous voulez marshaler à To_Type une variable.
Valeur de retour
Une variable du type To_Type qui est la valeur convertie d' input.
Notes
Cette méthode est un moyen simple de convertir des données entre les types managés.Pour déterminer quels types de données sont pris en charge, consultez Présentation du marshaling en C++.Certaines conversions de données requièrent un contexte.Vous pouvez convertir ces types de données à l'aide de marshal_context, classe.
Si vous essayez de marshaler une paire de types de données non pris en charge, marshal_as générera une erreur L'erreur C4996 au moment de la compilation.Lisez le message fourni avec cette erreur pour plus d'informations.L'erreur d' C4996 peut être générée pour plus que des fonctions déconseillées.Un exemple de ce essaie de marshaler une paire de types de données non pris en charge.
La bibliothèque de marshaling consiste en plusieurs fichiers d'en-tête.Une conversion requiert un seul fichier, mais vous pouvez inclure des fichiers supplémentaires si vous avez besoin pour d'autres conversions.Pour connaître les conversions sont associées auxquelles les fichiers, regardez dans la table dans Marshaling Overview.Indépendamment de la conversion vous souhaitez faire, la spécification de l'espace de noms est toujours appliquée.
Exemple
Marshale de cet exemple d' const char* à un type de variable d' System::String .
// 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;
}
Configuration requise
fichier d'en-tête :<msclr \ marshal.h>, <msclr \ marshal_windows.h>, <msclr \ marshal_cppstd.h>, ou <msclr \ marshal_atl.h>
Msclr::interop del'espace de noms :