Sdílet prostřednictvím


Přehled zařazování v jazyce C++

V kombinovaném režimu někdy musí zařazování mezi typy spravovaných a nativní data.Visual Studio 2008zavedena zařazovacího knihovny k zařazování a jednoduchým způsobem převést data.

S nebo bez zařazovacího knihovny můžete Třída marshal_context.Některé převody vyžadují kontext.Jiné převody lze implementovat pomocí marshal_as funkce.Následující tabulce jsou uvedeny aktuální převody podporovány, zda vyžaduje kontext a zařazování souborů, které je třeba zahrnout:

Z typu

Zadejte

Způsob zařazování

Zahrnout soubor

System::String ^

const char *

marshal_context

Marshal.h

const char *

System::String ^

marshal_as

Marshal.h

char *

System::String ^

marshal_as

Marshal.h

System::String ^

Const wchar_t *

marshal_context

Marshal.h

const wchar_t *

System::String ^

marshal_as

Marshal.h

wchar_t *

System::String ^

marshal_as

Marshal.h

System::IntPtr

popisovač

marshal_as

marshal_windows.h

popisovač

System::IntPtr

marshal_as

marshal_windows.h

System::String ^

BSTR

marshal_context

marshal_windows.h

BSTR

System::String ^

marshal_as

Marshal.h

System::String ^

bstr_t

marshal_as

marshal_windows.h

bstr_t

System::String ^

marshal_as

marshal_windows.h

System::String ^

std::String

marshal_as

marshal_cppstd.h

std::String

System::String ^

marshal_as

marshal_cppstd.h

System::String ^

std::wstring

marshal_as

marshal_cppstd.h

std::wstring

System::String ^

marshal_as

marshal_cppstd.h

System::String ^

CStringT <char>

marshal_as

marshal_atl.h

CStringT <char>

System::String ^

marshal_as

marshal_atl.h

System::String ^

CStringT <wchar_t>

marshal_as

marshal_atl.h

CStringT <wchar_t>

System::String ^

marshal_as

marshal_atl.h

System::String ^

CComBSTR

marshal_as

marshal_atl.h

CComBSTR

System::String ^

marshal_as

marshal_atl.h

Zařazování vyžaduje kontext pouze při zařazování spravované na nativní data z typů a nativní typ, který převádíte na nemá destruktoru pro automatické vyčištění.Zařazovací kontextu ničí přidělené nativní datový typ v jeho destruktoru.Převody, které vyžadují kontext budou proto platné pouze do souvislosti se zrušuje.Chcete-li uložit všechny zařazené hodnoty je třeba zkopírovat do vlastní proměnné hodnoty.

[!POZNÁMKA]

Pokud jste vložili NULLs vaší řetězce výsledek zařazování řetězec není zaručeno.Vložený NULLs může způsobit řetězec zkrácen nebo může být zachována.

Tak, že přidáte vlastní typy zařazovacího je rozšiřitelný zařazovacího knihovny.Další informace o rozšíření zařazovacího knihovny, viz Jak: rozšířit zařazovacího knihovny.

V dřívějších verzích nelze zařazování dat pomocí Platform vyvolat.Pro více informací o PInvoke si prohlédněte Volání nativní funkce ze spravovaného kódu.

Viz také

Úkoly

Jak: rozšířit zařazovacího knihovny

Další zdroje

Knihovna podpory C++