Interoperabilidad (Cómo se hace en Visual C++)
Actualización: noviembre 2007
Esta página tiene vínculos a temas de Ayuda sobre tareas relacionadas con la interoperabilidad que utilizan Visual C++. Para ver otras categorías de tareas frecuentes tratadas en la Ayuda, vea Cómo se hace en Visual C++.
Interoperabilidad CLR/código nativo
Comparación de funciones mixta, pura y comprobable
Compara las características de los tres modos de compilación de /clr diferentes.Cómo: Migrar a /clr
Trata los problemas que surgen al compilar código nativo con /clr y al convertir un proyecto en administrado.Cómo: Compilar código de MFC y ATL con /clr
Explica cómo compilar los programas MFC y ATL existentes para utilizarlos en el Common Language Runtime.Ensamblados mixtos (nativos y administrados)
Describe cómo pueden crear aplicaciones los desarrolladores mediante una mezcla de funcionalidad administrada y no administrada.Consideraciones de rendimiento para la interoperabilidad (C++)
Proporciona directrices para reducir el efecto de las transiciones de interoperabilidad administrada/no administrada en el rendimiento en tiempo de ejecución.How to: Declare public and private on Native Classes
Muestra cómo hacer referencia a un tipo nativo desde un tipo administrado.How to: Pass a Delegate^ to a Native Function Expecting a Function Pointer
Muestra cómo, desde un componente administrado, puede llamar a una función nativa mediante parámetros de puntero a función donde, a continuación, la función nativa puede llamar a la función miembro del delegado del componente administrado.Cómo: Tener acceso a caracteres en un objeto System::String
Muestra cómo tener acceso a los caracteres de un objeto String para las llamadas de alto rendimiento a funciones no administradas que toman cadenas wchar_t*.Cómo: Agregar un archivo DLL nativo a la Caché de ensamblados global
Describe cómo colocar un archivo DLL nativo (no COM) en la Caché de ensamblados global.Cómo: Realizar la conversión entre System::Guid y _GUID
Muestra cómo convertir entre Guid y _GUID.Cómo: Convertir char * String en una matriz System::Byte
Muestra que la manera más eficaz de convertir una cadena char * en una matriz Byte es utilizando la clase Marshal.Cómo: Convertir cadenas estándar en System::String
Muestra la forma de convertir una cadena de la Biblioteca estándar de C++ (<string>) en una cadena String.Cómo: Convertir System::String en cadenas estándar
Muestra la forma de convertir una cadena String en una cadena de la Biblioteca estándar de C++ (<string>).Cómo: Convertir System::String en wchar_t* o char*
Describe cómo utilizar PtrToStringChars en Vcclr.h para convertir String en tipos wchar_t * o char * nativos.Cómo: Declarar controladores en tipos nativos
Muestra cómo crear un objeto gcroot en la pila nativa.Cómo: Determinar si una imagen es nativa o CLR
Muestra cómo comprobar mediante programación si una imagen se generó para Common Language Runtime.Cómo: Mantener una referencia a objeto en una función nativa
Describe cómo utilizar gcroot.h, que encapsula GCHandle, para guardar la referencia a un objeto de CLR en la memoria no administrada.Cómo: Mantener la referencia a un tipo de valor en un tipo nativo
Describe cómo usar gcroot en el tipo al que se le ha aplicado la conversión boxing para mantener una referencia a un tipo de valor en un tipo nativo.Cómo: Obtener un puntero a una matriz de bytes
Describe cómo obtener un puntero al bloque de una matriz Byte tomando la dirección del primer elemento y asignándola a un puntero.Cómo: Utilizar un tipo nativo en una compilación con /clr
Muestra cómo definir un tipo nativo en una compilación /clr y cualquier uso de ese tipo nativo desde dentro del ensamblado.Cómo: Envolver una clase nativa para utilizarla en C#
Muestra cómo encapsular una clase de C++ nativa para que la pueda utilizar el código creado en C#, u otro lenguaje .NET.
Interoperabilidad de C++
Cómo: Convertir cadenas ANSI mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir las cadenas ANSI entre código nativo y administrado.Cómo: Calcular referencias de cadenas Unicode mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir las cadenas Unicode entre código nativo y administrado.Cómo: Calcular referencias de cadenas COM mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir las cadenas COM entre código nativo y administrado.Cómo: Calcular referencias de estructuras mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir structs entre código nativo y administrado.Cómo: Calcular referencias de matrices mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir matrices entre código nativo y administrado.Cómo: Calcular referencias de devoluciones de llamadas y delegados mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir devoluciones de llamada y delegados entre código nativo y administrado.Cómo: Calcular referencias de punteros incrustados mediante la interoperabilidad de C++
Muestra cómo utilizar la interoperabilidad de C++ para convertir punteros incrustados entre código nativo y administrado.Cómo: Especificar un parámetro out
Muestra cómo especificar que un parámetro de función es un parámetro out y cómo llamar a dicha función desde un programa de C#.
Interoperabilidad COM
Utilizar servidores COM nativos de .NET
Describe las opciones disponibles para utilizar los componentes COM existentes de las aplicaciones .NET y describe las ventajas y desventajas de cada enfoque.Cómo: Utilizar Servidores COM nativos con TLBIMP
Muestra cómo se pueden usar objetos COM desde código administrado con la herramienta Importador de la biblioteca de tipos (TlbImp.exe).Cómo: Utilizar Servidores COM nativos con CRCWs
Muestra cómo se pueden usar objetos COM desde código administrado mediante contenedores invocables en tiempo de ejecución personalizados.Exponer componentes de .NET Framework en COM
Describe varias sugerencias para escribir código administrado que interopera con clientes COM.
P/Invoke
Cómo: Calcular referencias de cadenas mediante PInvoke
Explica cómo se puede llamar a funciones nativas que aceptan cadenas de lenguaje C utilizando el tipo de cadena de CLR System.String mediante la funcionalidad de invocación de plataforma (P/Invoke).Cómo: Llamar a archivos DLL nativos desde el código administrado mediante PInvoke
Muestra cómo se puede llamar a funciones que se implementan en archivos DLL no administrados desde código administrado mediante la funcionalidad de invocación de plataforma (P/Invoke).Cómo: Calcular referencias a estructuras mediante PInvoke
Explica cómo se puede llamar a funciones nativas que aceptan structs de lenguaje C desde código administrado mediante la funcionalidad de invocación de plataforma (P/Invoke).Cómo: Calcular referencias a matrices mediante PInvoke
Explica cómo se puede llamar a funciones nativas que aceptan matrices de lenguaje C desde código administrado mediante la funcionalidad de invocación de plataforma (P/Invoke).Cómo: Calcular referencias de punteros a función mediante PInvoke
Explica cómo se puede utilizar delegados administrados en lugar de punteros a función al interoperar con funciones no administradas mediante la funcionalidad de invocación de plataforma (P/Invoke).Cómo: Calcular referencias de punteros incrustados mediante PInvoke
Explica cómo convertir punteros incrustados mediante la funcionalidad de invocación de plataforma (P/Invoke).Cómo: Modificar la clase de referencia en una función nativa
Muestra cómo pasar una clase de referencia con una matriz CLR a una función nativa y modificar la clase utilizando los servicios PInvoke.Cómo: Analizar cadenas utilizando expresiones regulares
Describe cómo obtener un puntero al bloque de una matriz Byte tomando la dirección del primer elemento y asignándola a un puntero.
Biblioteca de compatibilidad de C++
- Cómo: Extender la biblioteca de cálculo de referencias
Explica cómo extender la biblioteca de cálculo de referencias para proporcionar más conversiones entre los tipos de datos.
Utilizar formularios Windows Forms en MFC
Utilizar un control de usuario de formularios Windows Forms en MFC
Explica cómo puede utilizar las clases de soporte de los formularios Windows Forms de MFC para alojar en host controles de estos formularios en las aplicaciones MFC como controles ActiveX en cuadros de diálogo o vistas MFC.Diferencias de programación entre formularios Windows Forms y MFC
Proporciona información adicional sobre las diferencias de programación entre los formularios Windows Forms y MFC.Hospedar un control de usuario de formularios Windows Forms en un cuadro de diálogo MFC
Describe cómo alojar en host un control de formularios Windows Forms como un cuadro de MFC mediante la clase CWinFormsDialog.Cómo: Crear el control de usuario y hospedarlo en una vista MDI
Muestra cómo crear un control de usuario de .NET Frameworks, editarlo en una biblioteca de clases de control (específicamente un proyecto de la Biblioteca de controles de Windows) y, a continuación, compilar el proyecto en un ensamblado.Cómo: Agregar enrutamientos de comandos al control de Windows Forms
Muestra cómo utilizar CWinFormsView para enrutar comandos y actualizar mensajes de interfaz de usuario de comando al control de usuario para permitirle controlar comandos MFC.Cómo: Llamar a propiedades y métodos del control de formularios Windows Forms
Explica por qué es aconsejable agregar un miembro del tipo de control de usuario e inicializarlo en IView::OnInitialUpdate.Hospedar un control de usuario de formularios Windows Forms como vista MFC
Describe cómo alojar en host un control de usuario de formularios Windows Forms como una vista MFC.Cómo: Crear el control de usuario y hospedarlo en un cuadro de diálogo
Explica cómo agregar un control de usuario a un nuevo proyecto MFC basado en un cuadro de diálogo.Cómo: Enlazar datos DDX/DDV con formularios Windows Forms
Muestra cómo enlazar una cadena de C++ nativa a un control de usuario .NET.Cómo: Recibir eventos de formularios Windows en clases nativas de C++
Muestra cómo habilitar clases de C++ nativas para recibir devoluciones de llamada desde eventos administrados provocados por controles de formularios Windows Forms u otros formularios con formato de mapa de macros de MFC. La recepción de eventos en vistas y cuadros de diálogo es similar a la misma tarea efectuada para los controles.Hospedar un control de usuario de formularios Windows Forms en un cuadro de diálogo MFC
Describe cómo alojar en host un control de usuario de formularios Windows Forms en un cuadro de diálogo MFC.Cómo: Enlazar datos DDX/DDV con formularios Windows Forms
Muestra cómo enlazar una cadena de C++ nativa a un control de usuario .NET.