Freigeben über


marshal_as

Diese Methode konvertiert Daten zwischen systemeigenen und verwalteten Umgebungen.

To_Type marshal_as<To_Type>(
   From_Type input 
);

Parameter

  • [in] input
    Der Wert, den Sie To_Type eine Variable gemarshallt werden soll.

Rückgabewert

Eine Variable vom Typ To_Type, der den konvertierten Wert input ist.

Hinweise

Diese Methode ist eine vereinfachte Möglichkeit, Daten zwischen systemeigenen und verwalteten Typen zu konvertieren.Um festzustellen, welche Datentypen unterstützt werden, finden Sie unter Übersicht des Marshallens in C++.Einige Datenkonvertierungen erfordern einen Kontext.Sie können diese Datentypen konvertieren, indem Sie marshal_context-Klasse verwenden.

Wenn Sie versuchen, ein Paar von Datentypen zu marshallen, die nicht unterstützt werden, generiert marshal_asC4996 einen Fehler zur Kompilierzeit.Lesen Sie die Meldung ab, die Informationen zu diesem Fehler angegeben wurde.Der C4996 Fehler kann für mehr als nur veraltete Funktionen generiert werden.Ein Beispiel hierfür versucht, ein Paar von Datentypen zu marshallen, die nicht unterstützt werden.

Die Marshallingbibliothek besteht aus mehreren Headerdateien.Jede Konvertierung erfordert nur eine Datei, aber Sie können weitere Dateien einschließen, wenn Sie für weitere Konvertierungen erfordern.So ermitteln, welche Konvertierungen zugeordnet sind, mit denen Dateien in der Tabelle in Marshaling Overview entsprechen.Unabhängig davon, welche Konvertierung Sie ausführen möchten, ist die erforderlichen Namespaces immer wirksam ist.

Beispiel

Marschälle dieses Beispiels über const char* zu einem System::String-Variablentyp.

// 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;
}

Anforderungen

Headerdatei ein: <marshal.h \ msclr>, <marshal_windows.h \ msclr>, <marshal_cppstd.h \ msclr>oder <marshal_atl.h \ msclr>

Namespace: msclr::interop

Siehe auch

Referenz

marshal_context-Klasse

Konzepte

Übersicht des Marshallens in C++