Cómo llamar a un ensamblado .NET de Visual Basic o Visual Basic 2005 desde Visual Basic 6.0

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 817248
INTRODUCCIÓN
Este artículo se describe cómo usar Microsoft Visual Basic. NET o Microsoft Visual Basic 2005 para crear un ensamblado administrado que puede llamarse desde Microsoft Visual Basic 6.0.
Más información

Instrucciones para exponer tipos. NET a COM

Cuando desea exponer tipos en un ensamblado de Microsoft. NET, aplicaciones de modelo de objetos componentes (COM), tenga en cuenta los siguientes requisitos de interoperabilidad de COM en tiempo de diseño. Los tipos administrados (clase, interfaz, struct, enumy otros) interactúan bien con aplicaciones de cliente COM cuando siga estas instrucciones:
  • Definir interfaces e implementarlas de forma explícita en classes.COM interoperabilidad proporciona un mecanismo para generar automáticamente una interfaz thatcontains todos los miembros de la clase y los miembros de su clase base. Sin embargo, es mejor proporcionar interfaces explícitas e implementar themexplicitly.
  • Declarar tipos todo administrados que desee exponer a COM aspublic. Sólo los tipos públicos de un ensamblado están registrados y exportar a biblioteca el tipo. Por lo tanto, sólo los tipos públicos son visibles para COM.
  • Declarar a todos los miembros de tipo (métodos, propiedades, campos, andevents) que desee exponer a COM como pública. Los miembros de tipos públicos mustalso ser público para que sean visibles para COM. Por defecto, todos los tipos públicos y membersare visible. Si tiene que ocultar un tipo o un miembro de controltype o miembro visibilidad para las aplicaciones de cliente COM, utilice el atributo ComVisibleAttribute .
  • Los tipos deben tener un constructor público predeterminado a beinstantiated a través de Managed COM., tipos públicos son visibles para COM. Sin embargo, sin un constructor público predeterminado (un constructor sin argumentos), COMclients no se puede crear una instancia del tipo. Los clientes COM todavía pueden utilizar el tipo si el tipo se crea una instancia de otra manera y la instancia se devuelve al cliente COM. Pueden incluir constructores sobrecargados que aceptan el varyingarguments para estos tipos. Sin embargo, los constructores que aceptan argumentos pueden onlybe llamada desde administran código (. NET).
  • Los tipos no pueden ser abstractos. Ni los clientes COM ni. NETclients puede crear instancias de tipos abstractos.
  • Utilice la plantilla COMClass en. NET de Visual Basic o en Visual Basic 2005. Cuando youadd una nueva clase que se va a exponer a las aplicaciones COM, considere utilizar COMClass plantilla proporcionada por Visual Basic NET o por Visual Basic2005. La plantilla COMClass crea una clase que incluye el atributo COMClassAttribute y genera GUID para el CLSID, el identificador de interfaz y el identificador de evento que son expuestos por el tipo. Además, la plantilla COMClass crea un constructor público sin parámetros. Esta es la forma más sencilla de crear una nueva clase que sigue las directrices para los tipos que se puede llamar creatingCOM.

Registrar el ensamblado. NET para interoperabilidad COM y la creación de una biblioteca de tipos

Para Visual Basic 6.0 interactuar correctamente con un componente administrado, debe registrar el ensamblado de interoperabilidad COM y generar una biblioteca de tipos. Este registro debe realizarse en cada equipo donde una aplicación cliente COM interactúa con el ensamblado. La biblioteca de tipos proporciona información de tipo sobre los tipos expuestos en el conjunto de aplicaciones de cliente COM. El proceso para hacer esto depende de si está trabajando en el equipo de desarrollo o en el equipo de destino.

En el equipo de desarrollo Microsoft Visual Studio. NET o Microsoft Visual Studio 2005 automáticamente crea una biblioteca de tipos y lo registra durante el proceso de generación si está activada la casilla de verificación registrar para interoperabilidad COM en Propiedades de configuración del proyecto. Si utiliza la plantilla COMClass cuando crea la clase, Visual Studio NET o Visual Studio 2005 selecciona automáticamente la casilla de verificación registrar para interoperabilidad COM . Para comprobar que está activada la casilla de verificación registrar para interoperabilidad COM en Visual Studio NET o en Visual Studio 2005, siga estos pasos:
  1. Inicie Visual Studio 2005 o Visual Studio. NET.
  2. Abra la solución que contiene el proyecto que desee crear para COM interop.
  3. En el menú Ver , haga clic en SolutionExplorer.
  4. En el Explorador de soluciones, haga clic derecho en el proyecto que desee generar para interoperabilidad COM y, a continuación, haga clic enPropiedades.
  5. Haga clic en Propiedades de configuracióny haga clic en el nodo Build .

    Nota: En Visual Studio 2005, haga clic en compilar en el leftpane.
  6. Haga clic para activar la casilla de verificación registrar para COMInterop . Esta opción sólo está habilitada en la clase libraryprojects.
  7. Haga clic en Aceptar para cerrar el cuadro de diálogo páginas de propiedades .
Si no está instalado Visual Studio NET o Visual Studio 2005 o si tiene que generar y registrar un archivo de biblioteca (.tlb) de tipo para el ensamblado administrado manualmente, utilice la herramienta Registro de ensamblados (RegAsm.exe) con el modificador/tlb . También debe utilizar el modificador /Codebase si el ensamblado administrado es un ensamblado privado y desea colocar el ensamblado administrado en una carpeta diferente del proceso de host (EXE).

Un ensamblado privado se implementa con una aplicación y está disponible para el uso exclusivo de esa aplicación. Otras aplicaciones no comparten el ensamblado privado. Ensamblados privados están diseñados para instalarse en la misma carpeta que el proceso host (EXE). Con una aplicación cliente COM, esto significa que el ensamblado se encuentra en la misma carpeta que la aplicación. Un ensamblado compartido está disponible para su uso por varias aplicaciones en el equipo. Para crear un ensamblado compartido, debe firmar el ensamblado con un nombre seguro e instalar al ensamblado en la caché de ensamblados Global (GAC) del equipo de destino.

Para obtener más información acerca de cómo firmar el ensamblado con un nombre seguro e instale al ensamblado en la caché de ensamblados Global (GAC), visite el siguiente sitio Web de Microsoft:Se debe utilizar el /tlb: conmutador y el /Codebase cambie cuando registre el ensamblado. El /tlb: conmutador genera y registra una biblioteca de tipos, y el modificador /Codebase registra la ubicación del ensamblado administrado en el registro de Windows. Si no utiliza el modificador /Codebase y no ha instalado el ensamblado en la caché de ensamblados Global (GAC), debe colocar una copia del ensamblado en la carpeta de cada aplicación de cliente COM (EXE) para que el ensamblado puede situarse por common language runtime (CLR).

Para generar y registrar una biblioteca de tipos y registrar la ubicación del ensamblado administrado, escriba el comando siguiente en el símbolo del sistema:
Regasm AssemblyName.dll / tlb: FileName.tlb / codebase

Cree un ensamblado que se puede llamar de COM en Visual Basic NET

  1. Inicie Visual Studio 2005 o Visual Studio. NET.
  2. En el menú archivo , elijanuevoy, a continuación, haga clic en proyecto.
  3. En Tipos de proyecto, elija Proyectos de Visual Basic.

    Nota: En Visual Studio2005 haga clic en Visual Basic enTipos de proyecto.
  4. En plantillas, haga clic en ClassLibrary.
  5. Denomine el proyecto TestProj y, a continuación, haga clic enAceptar.

    De forma predeterminada, se crea Class1.
  6. En el menú Ver , haga clic en SolutionExplorer.
  7. Haga clic en Class1.vby, a continuación, haga clic enEliminar. Haga clic en Aceptar para confirmar la eliminación del archivo Class1.vb.
  8. En el menú proyecto , haga clic en AddClass.
  9. En plantillas, haga clic en COMClass.
  10. Nombre de la clase COMClass1.vb y, a continuación, haga clic enAbrir

    COMClass1 se crea con el código siguiente.
    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _Public Class ComClass1#Region "COM GUIDs"    ' These  GUIDs provide the COM identity for this class     ' and its COM interfaces. If you change them, existing     ' clients will no longer be able to access the class.    Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4"    Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7"    Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC"#End Region    ' A creatable COM class must have a Public Sub New()     ' without parameters. Otherwise, the class will not be     ' registered in the COM registry and cannot be created     ' through CreateObject.    Public Sub New()        MyBase.New()    End SubEnd Class
  11. Agregue la siguiente función a COMClass1.
       Public Function myFunction() As Integer      Return 100   End Function
  12. En el Explorador de soluciones, haga clic enNombre del proyectoy, a continuación, haga clic enPropiedades.
  13. En Propiedades de configuración, haga clic enGenerar.
  14. Compruebe que está activada la casilla de verificación registrar para interoperabilidad COMy, a continuación, haga clic en Aceptar.
  15. En el menú Generar , haga clic en Generar solución para generar el proyecto.
  16. Inicie Visual Basic 6.0.
  17. En el menú archivo , haga clic en NewProjecty, a continuación, haga clic para seleccionar EXE estándar en el cuadro de diálogoNuevo proyecto .

    De forma predeterminada, un formulario se crea ese isnamed Form1.
  18. En el menú proyecto , haga clic enreferencias.
  19. En la lista Referencias disponibles , haga doble clic para seleccionar TestProjy, a continuación, haga clic enAceptar.
  20. Agregue un botón de comando al formulario.
  21. Haga doble clic en Command1 para abrir el Codewindow.
  22. Agregue el código siguiente al evento Command1_Click .
    Dim myObject As TestProj.COMClass1Set myObject = New TestProj.COMClass1MsgBox myObject.myFunction
  23. En el menú Ejecutar , haga clic enInicio.
  24. Haga clic en el botón de comando.

    Debería recibir unmensaje que muestra 100.
Referencias
Para obtener más información, visite el siguiente sitio Web de Microsoft:
Interoperación con código no administrado
http://msdn2.Microsoft.com/en-us/library/sd10k43k (vs.71).aspx

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 817248 - Última revisión: 03/20/2016 08:02:00 - Revisión: 8.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft .NET Framework 2.0, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0

  • kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster kbmt KB817248 KbMtes
Comentarios