Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta metoda konwertuje dane między środowiskami natywnymi i zarządzanymi.
Składnia
To_Type marshal_as<To_Type>(
From_Type input
);
Parametry
wkład
[in] Wartość, którą chcesz przeprowadzić marshaling do zmiennej To_Type .
Wartość zwracana
Zmienna typu To_Type , która jest przekonwertowaną wartością input.
Uwagi
Ta metoda jest uproszczonym sposobem konwertowania danych między typami natywnymi i zarządzanymi. Aby określić, jakie typy danych są obsługiwane, zobacz Omówienie marshalingu w języku C++. Niektóre konwersje danych wymagają kontekstu. Te typy danych można przekonwertować przy użyciu klasy marshal_context.
Jeśli spróbujesz przeprowadzić marshaling pary typów danych, które nie są obsługiwane, marshal_as wygeneruje błąd C4996 w czasie kompilacji. Przeczytaj komunikat dostarczony z tym błędem, aby uzyskać więcej informacji. Błąd C4996 można wygenerować dla nie tylko przestarzałych funkcji. Jednym z przykładów jest próba marshalingu pary typów danych, które nie są obsługiwane.
Biblioteka marshalingowa składa się z kilku plików nagłówkowych. Każda konwersja wymaga tylko jednego pliku, ale możesz uwzględnić dodatkowe pliki, jeśli potrzebujesz innych konwersji. Aby zobaczyć, które konwersje są skojarzone z którymi plikami, poszukaj w tabeli w pliku Marshaling Overview. Niezależnie od konwersji, którą chcesz wykonać, wymaganie przestrzeni nazw jest zawsze skuteczne.
System::ArgumentNullException(_EXCEPTION_NULLPTR) Zgłasza wartość , jeśli parametr wejściowy ma wartość null.
Przykład
W tym przykładzie marshalsuje z typu a const char* do zmiennej 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;
}
Wymagania
Plik nagłówka:<msclr\marshal.h>, <msclr\marshal_windows.h>, <msclr\marshal_cppstd.h lub <msclr\marshal_atl.h>>
Przestrzeń nazw: msclr::interop