Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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