marshal_as
Ta metoda konwertuje dane między środowiskiem native i zarządzane.
To_Type marshal_as<To_Type>(
From_Type input
);
Parametry
- [in] input
Wartość, którą chcesz zorganizować do To_Type zmiennej.
Wartość zwracana
Zmienna typu To_Type czyli przekonwertowanej wartości z input.
Uwagi
Ta metoda jest uproszczone sposobem konwersji danych między typami macierzystego i zarządzanego.Aby określić, jakie typy danych są obsługiwane, zobacz Omówienie kierowania w języku C++.Pewne konwersje danych wymagają kontekstu.Można przekonwertować te typy danych za pomocą marshal_context — Klasa.
Próba zorganizowania parę typów danych, które nie są obsługiwane, marshal_as wygeneruje błąd, C4996 w czasie kompilacji.Przeczytaj komunikat dostarczone z tym błędem, aby uzyskać więcej informacji.C4996 Błędów mogą być generowane dla więcej niż tylko zdeprecjonowanej funkcji.Jednym z przykładów jest trudny do organizowania parę typów danych, które nie są obsługiwane.
Organizowania biblioteka składa się z kilku plików nagłówkowych.Jakakolwiek zmiana wymaga tylko jeden plik, ale można dołączyć dodatkowe pliki, jeśli trzeba dla innych konwersji.Konwersje, które są skojarzone z plikami, które obejrzeć w tabeli w Marshaling Overview.Niezależnie od konwersji, co chcesz zrobić, wymóg obszaru nazw jest zawsze w efekcie.
Przykład
W tym przykładzie marszałków z const char* do System::String typu zmiennej.
// 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;
}
Wymagania
Plik nagłówka:<msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h>, lub <msclr\marshal_atl.h>
Przestrzeń nazw: msclr::interop