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

Seleccione idioma Seleccione idioma
Id. de artículo: 817248 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Este artículo se describe cómo utilizar 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 COM de .NET

Si desea exponer tipos en un ensamblado de Microsoft .NET para las aplicaciones del modelo de objetos componentes (COM), tenga en cuenta los siguientes requisitos de interoperabilidad COM en tiempo de diseño. Los tipos administrados (clase, interfaz, struct, enumy otros) interactúan con las 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 de 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 todos administrados que desee exponer a COM aspublic. Sólo los tipos públicos de un ensamblado son registrados y exportados para el tipo biblioteca. 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úblicos 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 .
  • 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 pueden usar el tipo si el tipo se crea una instancia de otra manera y se devuelve la instancia al cliente COM. Puede incluir constructores sobrecargados que aceptan varyingarguments para estos tipos. Sin embargo, los constructores que aceptan argumentos pueden ser llamado 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 Visual Basic .NET o Visual Basic 2005. Cuando youadd una nueva clase que se va a exponer a las aplicaciones COM, considere utilizar COMClass plantilla que se proporciona mediante Visual Basic .NET o Visual Basic2005. La plantilla de 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 se exponen 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 la 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, .NET de Visual Studio o Visual Studio 2005 de 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 de, siga estos pasos:
  1. Inicie Visual Studio .NET o Visual Studio 2005 de.
  2. Abra la solución que contiene el proyecto que quieres crear para interoperabilidad COM.
  3. En el menú Ver , haga clic en SolutionExplorer.
  4. En el Explorador de soluciones, haga clic en el proyecto que quieres crear para la interoperabilidad COM y, a continuación, haga clic enPropiedades.
  5. Haga clic en Propiedades de configuracióny a continuación, 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 PropertyPages .
Si no está instalado Visual Studio .NET de o Visual Studio 2005 de o si tiene que generar manualmente y registrar un archivo de biblioteca (.tlb) de tipo para el ensamblado administrado, utilice la herramienta Registro de ensamblados (RegAsm.exe) con el modificador/tlb . También se 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. Los ensamblados privados están diseñados para instalarse en la misma carpeta que el proceso del host (EXE). Con una aplicación de 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 y volver a 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:
http://msdn2.Microsoft.com/en-us/library/xc31ft41 (vs.71).aspx
Se debe utilizar el /tlb: conmutador y el /Codebase cambiar al registrar 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 se 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

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

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

    Nota Studio2005 Visual 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 de origen Class1.vb.
  8. En el menú proyecto , haga clic en AddClass.
  9. En plantillas, haga clic en COMClass.
  10. La clase COMClass1.vb el nombre 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 Sub
    
    End 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á seleccionada 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 en para seleccionar el cuadro de diálogoNuevo proyectoEXE estándar .

    De manera predeterminada, un formulario se crea ese isnamed Form1.
  18. En el menú proyecto , haga clic enreferencias.
  19. En la lista de Referencias disponibles , haga doble clic para seleccionar TestProjy, a continuación, haga clic enAceptar.
  20. Agregar 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.COMClass1
    Set myObject = New TestProj.COMClass1
    MsgBox myObject.myFunction
  23. En el menú Ejecutar , haga clic enInicio.
  24. Haga clic en el botón de comando.

    Recibirá un mensaje que muestra 100.

Referencias

Para obtener más información, visite el siguiente sitio Web de Microsoft:
Interoperar con código no administrado
http://msdn2.Microsoft.com/en-us/library/sd10k43k (vs.71).aspx

Propiedades

Id. de artículo: 817248 - Última revisión: jueves, 31 de octubre de 2013 - Versión: 7.0
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster kbmt KB817248 KbMtes
Traducción automática
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

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com