Condividi tramite


marshal_as

Questo metodo converte i dati tra ambienti nativi e gestiti.

Sintassi

To_Type marshal_as<To_Type>(
   From_Type input
);

Parametri

input
[in] Valore di cui si vuole effettuare il marshalling a una To_Type variabile.

Valore restituito

Variabile di tipo To_Type che rappresenta il valore convertito di input.

Osservazioni:

Questo metodo è un modo semplificato per convertire i dati tra tipi nativi e gestiti. Per determinare i tipi di dati supportati, vedere Panoramica del marshalling in C++. Alcune conversioni di dati richiedono un contesto. È possibile convertire questi tipi di dati usando la classe marshal_context.

Se si tenta di effettuare il marshalling di una coppia di tipi di dati non supportati, marshal_as verrà generato un errore C4996 in fase di compilazione. Per altre informazioni, leggere il messaggio fornito con questo errore. L'errore C4996 può essere generato per più di una semplice funzione deprecata. Un esempio di questo è il tentativo di effettuare il marshalling di una coppia di tipi di dati non supportati.

La libreria di marshalling è costituita da diversi file di intestazione. Qualsiasi conversione richiede un solo file, ma è possibile includere file aggiuntivi se è necessario per altre conversioni. Per vedere quali conversioni sono associate ai file, cercare nella tabella in Marshaling Overview. Indipendentemente dalla conversione da eseguire, il requisito dello spazio dei nomi è sempre attivo.

System::ArgumentNullException(_EXCEPTION_NULLPTR) Genera un'eccezione se il parametro di input è Null.

Esempio

In questo esempio viene eseguita il marshalling da un const char* oggetto a un System::String tipo di variabile.

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

Requisiti

File di intestazione:<msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h> o <msclr\marshal_atl.h>

Spazio dei nomi: msclr::interop

Vedi anche

Panoramica del marshalling in C++
Classe marshal_context