Información general sobre el cálculo de referencias en C++

En modo mixto, debe calcularse a veces los datos entre código nativo y los tipos administrados.Visual Studio 2008 introdujo la biblioteca de cálculo de referencias para ayudarle a formar y para convertir datos de una manera sencilla.

Puede utilizar la biblioteca de cálculo de referencias con o sin marshal_context (Clase).Algunas conversiones requieren un contexto.Otras conversiones se pueden implementar mediante la función de marshal_as .La tabla siguiente se enumeran las conversiones actuales compatibles, si se requiere un contexto, y el cálculo de referencias el archivo tiene que incluir:

De tipo

Para escribir

Método de cálculo de referencias

Archivo de inclusión

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^

wchar_t* const

marshal_context

marshal.h

const wchar_t *

System::String^

marshal_as

marshal.h

wchar_t*

System::String^

marshal_as

marshal.h

System::IntPtr

HANDLE

marshal_as

marshal_windows.h

HANDLE

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^

el std::string

marshal_as

marshal_cppstd.h

el std::string

System::String^

marshal_as

marshal_cppstd.h

System::String^

el std::wstring

marshal_as

marshal_cppstd.h

el 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

El cálculo requiere un contexto cuando se forma de administrado a tipos de datos nativos y código que se está desarrollando no hace que el destructor para automático clean.El contexto de cálculo de referencias destruye el tipo de datos nativo asignado en su destructor.Por consiguiente, las conversiones que requieren un contexto se válidas sólo hasta que se elimine el contexto.Para guardar cualquier valor formado, debe copiar los valores a las variables personalizadas.

[!NOTA]

Si ha insertado s para NULLen la cadena, el resultado de calcular la cadena no se puede garantizar.S incrustada de NULLpuede producir la cadena que se truncará o que son conservar.

La biblioteca de cálculo de referencias es extensible para que pueda agregar sus propios tipos de cálculo.Para obtener más información sobre cómo extender la biblioteca de cálculo de referencias, vea Cómo: Extender la biblioteca de cálculo de referencias.

En versiones anteriores, puede calcular datos mediante La invocación de plataforma.Para obtener más información sobre PInvoke, vea Llamar a funciones nativas desde código administrado.

Vea también

Tareas

Cómo: Extender la biblioteca de cálculo de referencias

Otros recursos

Biblioteca de compatibilidad de C++