marshal_as
Este método converte dados entre ambientes nativos e gerenciados.
To_Type marshal_as<To_Type>(
From_Type input
);
Parâmetros
- [in]input
O valor que você deseja empacotar uma To_Type variável.
Valor de retorno
Uma variável do tipo To_Type que é o valor convertido de input.
Comentários
Este método é uma maneira simplificada de converter dados entre tipos nativos e gerenciados.Para determinar quais tipos de dados são suportados, consulte Visão geral do empacotamento em C++.Algumas conversões de dados requerem um contexto.Você pode converter esses tipos de dados usando o Classe marshal_context.
Se você tentar empacotar um par de tipos de dados que não são suportados, marshal_as irá gerar um erro C4996 em tempo de compilação.Leia a mensagem fornecida com esse erro para obter mais informações.O C4996 erro pode ser gerado para funções mais acabou preteridas.Um exemplo disso é a tentativa de empacotar um par de tipos de dados que não são suportados.
A biblioteca de marshaling consiste em vários arquivos de cabeçalho.Qualquer conversão requer apenas um arquivo, mas você pode incluir arquivos adicionais se precisar de outras conversões.Para ver quais conversões estão associadas com os arquivos, procure na tabela Marshaling Overview.O requisito de espaço para nome independentemente de conversão que você deseja fazer, está sempre em vigor.
Exemplo
Este exemplo empacota de um const char* para um System::String tipo de variável.
// 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;
}
Requisitos
Arquivo de cabeçalho: <msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h> ou <msclr\marshal_atl.h>
Namespace: msclr::interop