Como chamar uma assemblagem de Visual Basic .NET ou Visual Basic 2005 a partir do Visual Basic 6.0

Traduções de Artigos Traduções de Artigos
Artigo: 817248 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

Este artigo descreve como utilizar o Microsoft Visual Basic .NET ou o Microsoft Visual Basic 2005 para criar uma assemblagem gerida que pode ser chamada a partir do Microsoft Visual Basic 6.0.

Mais Informação

Directrizes para expor COM tipos de .NET

Quando pretender expor tipos na assemblagem Microsoft .NET para aplicações do COM (Component Object Model), considere os seguintes requisitos interoperabilidade COM no momento da concepção. Tipos geridos ( classe , interface , estrutura , enumeração e outros) interagem bem COM aplicações de cliente quando siga estas directrizes:
  • Definir interfaces e explicitamente implementá-las em classes. Interoperabilidade COM fornece um mecanismo para gerar automaticamente uma interface que contém todos os membros da classe e os membros da respectiva classe base. No entanto, recomenda-se fornecer interfaces explícitas e implementá-las explicitamente.
  • Declare geridos todos os tipos que pretende expor COM como público. Apenas públicos tipos na assemblagem estão registados e exportados para a biblioteca de tipos. Deste modo, apenas os tipos públicos estão visíveis para COM.
  • Declare todos os tipo de membros (métodos, propriedades, campos e eventos) que pretende expor COM como público. Membros de tipos públicos também têm de ser públicos seja visível para COM. Por predefinição, todos os tipos públicos e membros estão visíveis. Utilize o atributo ComVisibleAttribute se pretender ocultar um tipo ou membro de visibilidade de tipo ou membro de controlo para COM aplicações de cliente.
  • Tipos têm de ter um construtor predefinido público para serem instanciados através de COM. gerido, tipos públicos são visíveis para COM. No entanto, sem um construtor predefinido público (um construtor sem argumentos), COM clientes não é possível criar uma instância do tipo. Clientes COM podem utilizar o tipo se o tipo é instanciado na outra forma e a instância é devolvida ao cliente COM. Pode incluir sobrecarregados construtores que aceitam vários argumentos para estes tipos. No entanto, os construtores que aceitam argumentos só podem ser chamados de código (NET) gerido.
  • Tipos não podem ser abstractos. Nem os clientes COM .NET clientes podem criar instâncias de tipos abstractos.
  • Utilize o modelo COMClass no Visual Basic .NET ou no Visual Basic 2005. Quando adiciona uma nova classe que pretende expor a aplicações do COM, considere utilizar o modelo de COMClass fornecida, Visual Basic .NET ou Visual Basic 2005. O modelo COMClass cria uma classe que inclui o atributo COMClassAttribute e gera o GUID para o CLSID, o ID da interface e o ID do evento expostos pelo tipo de. Além disso, o modelo COMClass cria um construtor público sem parâmetros. Esta é a forma mais fácil para criar uma nova classe que segue as directrizes para a criação COM tipos de chamada.

Registar a assemblagem .NET para interoperabilidade COM e criar uma biblioteca de tipos

Para o Visual Basic 6.0 interagir com êxito com um componente gerido, tem de registar a assemblagem de interoperabilidade COM e gerar uma biblioteca de tipos. Este registo deve ser executado em cada computador onde um COM a aplicação cliente interagir com a assemblagem. A biblioteca de tipos fornece informações de tipo sobre os tipos na assemblagem para aplicações de cliente COM expostos. O processo para o fazer depende o tempo de se estiver a trabalhar no computador de desenvolvimento ou no computador de destino.

No computador de desenvolvimento Microsoft Visual Studio .NET ou o Microsoft Visual Studio 2005 automaticamente cria uma biblioteca de tipos e regista durante o processo de compilação se a caixa de verificação Registar para interoperabilidade em Propriedades de configuração do projecto. Se tiver utilizado o modelo COMClass quando criou a classe, Visual Studio .NET ou Visual Studio 2005 selecciona automaticamente o registo para interoperabilidade caixa de verificação. Para verificar se a caixa de verificação Registar para interoperabilidade é seleccionada no Visual Studio .NET ou no Visual Studio 2005, siga estes passos:
  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. Abra a solução que contém o projecto que pretende criar para interoperabilidade COM.
  3. No menu Ver , clique em Solution Explorer .
  4. No Solution Explorer, clique com o botão direito do rato no projecto que pretende criar para interoperabilidade COM e, em seguida, clique em Propriedades .
  5. Clique em Propriedades de configuração e clique em nó criar .

    Nota No Visual Studio 2005, clique em Compilar no painel da esquerda.
  6. Clique para seleccionar o movimentação COM Interop caixa de verificação. Esta opção só está activada em projectos de biblioteca de classe.
  7. Clique em OK para fechar o Propriedades páginas caixa de diálogo.
Se o Visual Studio .NET ou Visual Studio 2005 não está instalado ou se tiver de gerar e registar um ficheiro de biblioteca (.tlb) do tipo de assemblagem gerida manualmente, utilize a ferramenta de registo de assemblagens (RegAsm.exe) com o / TLB mudar. Também deve utilizar o parâmetro / código base se assemblagem gerida é uma assemblagem privada e que pretende colocar a assemblagem gerida numa pasta diferente do processo de anfitrião (EXE).

Uma assemblagem privada implementada com uma aplicação e está disponível para utilização exclusiva dessa aplicação. Outras aplicações não partilhem a assemblagem privada. Assemblagens privadas foram concebidas para ser instalado na mesma pasta que o processo anfitrião (EXE). Com uma aplicação do cliente COM, isto significa que a assemblagem está localizada na mesma pasta que essa aplicação. Uma assemblagem partilhada está disponível para utilização por várias aplicações no computador. Para criar uma assemblagem partilhada, tem de assinar a assemblagem com um nome seguro e instalar a assemblagem para a cache assemblagem global (GAC) no computador de destino.

Para mais informações sobre como assinar a assemblagem com um nome seguro e instalar a assemblagem na cache de assemblagem global (GAC), visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx
Deverá utilizar ambos o / tlb: parâmetro e o / código base mudar quando registar a assemblagem. O / tlb: parâmetro gera e regista uma biblioteca de tipos e o parâmetro / código base regista a localização da assemblagem gerida no registo do Windows. Se não utilizar o parâmetro / código base e não foi instalada a assemblagem na cache de assemblagem global (GAC), tem de colocar uma cópia da assemblagem para a pasta de cada aplicação de cliente COM (EXE) para que a assemblagem pode estar localizada pelo common language runtime (CLR).

Para gerar e uma biblioteca de tipos de registo e registar a localização da assemblagem gerida, escreva o seguinte comando na linha de comandos:
RegAsm AssemblyName.dll /tlb: FileName.tlb /CODEBASE

Criar uma assemblagem de chamada COM no Visual Basic .NET

  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Em Project Types , clique em Projectos do Visual Basic .

    Nota No Visual Studio2005 clique em Visual Basic em Project Types .
  4. Em modelos , clique em classe biblioteca .
  5. Atribua um nome do projecto TestProj e, em seguida, clique em OK .

    Por predefinição, é criado Aula1.
  6. No menu Ver , clique em Solution Explorer .
  7. Clique com o botão direito do rato Class1.vb e, em seguida, clique em Eliminar . Clique em OK para confirmar a eliminação do ficheiro de origem Class1.vb.
  8. No menu projecto , clique em Adicionar classe .
  9. Em modelos , clique em COM classe .
  10. Nome da classe COMClass1.vb e, em seguida, clique em Abrir

    COMClass1 é criado com o seguinte código.
    <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. Adicione a seguinte função COMClass1.
       Public Function myFunction() As Integer
          Return 100
       End Function
  12. No Solution Explorer, clique com o botão direito do rato em Project Name e, em seguida, clique em Propriedades .
  13. Em Propriedades de configuração , clique em criar .
  14. Verifique se o registo para interoperabilidade com. Verifique caixa está seleccionada e, em seguida, clique em OK .
  15. No menu criar , clique em criar soluções para criar o projecto.
  16. Inicie o Visual Basic 6.0.
  17. No menu ficheiro , clique em Novo projecto e, em seguida, clique em para seleccionar a caixa de diálogo Novo projecto EXE padrão .

    Por predefinição, é criado um formulário é denominado Form1.
  18. No menu projecto , clique em References .
  19. Na lista Available References , faça duplo clique para seleccionar TestProj e, em seguida, clique em OK .
  20. Adicionar um botão de comando ao formulário.
  21. Faça duplo clique em Command1 para abrir o código de janela.
  22. Adicione o seguinte código ao evento Command1_Click .
    Dim myObject As TestProj.COMClass1
    Set myObject = New TestProj.COMClass1
    MsgBox myObject.myFunction
  23. No menu Run , clique em Iniciar .
  24. Clique no botão de comando.

    Deverá receber uma mensagem que apresenta a 100.

Referências

Para mais informações, visite o seguinte Web site da Microsoft:
Interagir com o código não gerido
http://msdn2.microsoft.com/en-us/library/sd10k43k(vs.71).aspx

Propriedades

Artigo: 817248 - Última revisão: 3 de dezembro de 2007 - Revisão: 6.7
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Palavras-chave: 
kbmt kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster KB817248 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 817248

Submeter comentários

 

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