Condividi tramite


marshal_as

Questo metodo converte i dati tra ambienti nativi e gestiti.

To_Type marshal_as<To_Type>(
   From_Type input 
);

Parametri

  • [in] input
    Il valore di cui si desidera eseguire il marshalling a una variabile To_Type.

Valore restituito

Una variabile di tipo To_Type che è il valore convertito di input.

Note

Questo metodo è un modo semplificato per convertire i dati tra tipi nativi e gestiti. Per determinare i tipi di dati supportati, vedere Panoramica del marshaling in C++. Alcune conversioni di dati richiedono un contesto. È possibile convertire tali tipi di dati utilizzando Classe marshal_context.

Se si tenta di eseguire il marshalling di una coppia di tipi di dati non supportati, marshal_as genererà un errore C4996 in fase di compilazione. Per ulteriori informazioni leggere il messaggio fornito con questo errore. L'errore C4996 può essere generato per più funzioni, non sono per quelle deprecate. Un esempio di questo sta tentando di eseguire il marshalling di una coppia di tipi di dati non supportati.

La libreria del marshalling è costituita da diversi file di intestazione. Qualunque conversione richiede solo un file, ma è possibile includere file aggiuntivi se sono necessari per altre conversioni. Per visualizzare quali file siano associati a determinate conversioni, vedere nella tabella in Marshaling Overview. Indipendentemente dalla conversione che si desidera apportare, il requisito dello spazio dei nomi è sempre in vigore.

Esempio

Questo esempio esegue il marshalling da un const char* a un tipo di variabile 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;
}

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

Vedere anche

Riferimenti

Classe marshal_context

Concetti

Panoramica del marshaling in C++