Como chamar um assembly Visual Basic .NET ou Visual Basic 2005 do Visual Basic 6.0

Traduções deste artigo Traduções deste artigo
ID do artigo: 817248 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

INTRODUÇÃO

Este artigo descreve como usar o Microsoft Visual Basic .NET ou Microsoft Visual Basic 2005 para criar um assembly gerenciado que pode ser chamado a partir do Microsoft Visual Basic 6.0.

Mais Informações

Diretrizes para expor tipos .NET para COM

Quando você deseja expor tipos em um assembly do Microsoft .NET para aplicativos COM (Component Object Model), considere os seguintes requisitos de interoperabilidade de COM em tempo de design. Tipos gerenciados ( classe , interface , estrutura , enum e outros) interagem bem com aplicativos de cliente COM quando você seguir estas diretrizes:
  • Definir interfaces e implementá-los explicitamente em classes. Interoperabilidade COM fornece um mecanismo para gerar automaticamente uma interface que contém todos os membros da classe e os membros de sua classe base. No entanto, é melhor fornecer interfaces explícitas e implementá-las explicitamente.
  • Declare tipos gerenciados todos os que você deseja expor a COM como pública. Apenas tipos públicos em um assembly registrados e exportados para a biblioteca de tipos. Portanto, apenas tipos públicos estão visíveis para COM.
  • Declare todos os tipo membros (métodos, propriedades, campos e eventos que você deseja expor a COM como pública). Membros de tipos públicos devem também ser públicos seja visível para COM. Por padrão, todos os tipos públicos e os membros fiquem visíveis. Use o atributo ComVisibleAttribute se você tiver que ocultar um tipo ou um membro da visibilidade de tipo ou membro do controle para aplicativos de cliente COM.
  • Tipos devem ter um construtor público padrão para ser instanciado pelo COM. gerenciado, tipos públicos são visíveis para COM. No entanto, sem um construtor público padrão (um construtor sem argumentos), COM os clientes não é possível criar uma instância do tipo. Clientes COM ainda podem usar o tipo se o tipo é instanciado de outra forma e a instância é retornada ao cliente COM. Você pode incluir construtores sobrecarregados que aceitam argumentos variáveis para esses tipos. No entanto, construtores que aceitam argumentos podem ser chamados somente por código gerenciado do (. NET).
  • Tipos não podem ser abstract. Nem clientes COM .NET clientes podem criar instâncias de tipos abstratos.
  • Use o modelo COMClass no Visual Basic .NET ou no Visual Basic 2005. Quando você adiciona uma nova classe que você pretende expor a aplicativos do COM, considere usando o modelo de COMClass é fornecido pelo Visual Basic .NET ou pelo Visual Basic 2005. O modelo COMClass cria uma classe que inclui o atributo COMClassAttribute e gera GUIDs para o CLSID, a identificação de interface e a identificação de evento que são expostos pelo seu tipo. Além disso, o modelo COMClass cria um construtor público sem parâmetros. Essa é a maneira mais fácil para criar uma nova classe segue as diretrizes para criar COM callable tipos.

Registrando o assembly .NET para interoperabilidade COM e criar uma biblioteca de tipos

Para Visual Basic 6.0 interagir com êxito com um componente gerenciado, você deve registrar o assembly de interoperabilidade COM e gerar uma biblioteca de tipos. Esse registro deve ser executado em cada computador onde um COM cliente aplicativo interage com o assembly. A biblioteca de tipo fornece informações de tipo sobre os tipos expostos no assembly para aplicativos de cliente COM. O processo para fazer isso depende da se você estiver trabalhando no computador de desenvolvimento ou no computador de destino.

No computador de desenvolvimento, no Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 automaticamente cria uma biblioteca de tipos e registra-lo durante o processo de compilação se a caixa de seleção Register for COM Interop for selecionada em Propriedades de configuração do projeto. Se você usou o modelo COMClass quando você criou a classe, Visual Studio .NET ou Visual Studio 2005 selecionará automaticamente o registrar para interoperabilidade COM caixa de seleção. Para verificar se a caixa de seleção Register for COM Interop é selecionada no Visual Studio .NET ou no Visual Studio 2005, execute as seguintes etapas:
  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. Abra a solução que contém o projeto que você deseja criar for COM interop.
  3. No menu Exibir , clique em Solution Explorer .
  4. No Solution Explorer, clique o projeto que você deseja criar para interoperabilidade COM o botão direito do mouse e, em seguida, clique em Propriedades .
  5. Clique em Configuration Properties e, em seguida, clique no nó criar .

    Observação No Visual Studio 2005, clique em Compile no painel esquerdo.
  6. Clique para selecionar o Register for COM Interop caixa de seleção. Esta opção é habilitada apenas em projetos de biblioteca de classes.
  7. Clique em OK para fechar o propriedade páginas caixa de diálogo.
Se o Visual Studio .NET ou Visual Studio 2005 não está instalado ou caso você precise gerar manualmente e registre-se um arquivo de biblioteca (.tlb) do tipo para o assembly gerenciado, use a ferramenta de registro de assembly (RegAsm.exe) com o / TLB alternar. Você também deve usar a opção / codebase se o assembly gerenciado é um assembly particular e você pretende colocar assembly gerenciado em uma pasta diferente do processo de host (EXE).

Um assembly particular é implantado com um aplicativo e está disponível para o uso exclusivo desse aplicativo. Outros aplicativos não compartilham o assembly particular. Conjuntos privados são projetados para ser instalado na mesma pasta como o processo de host (EXE). Com um aplicativo de cliente COM, isso significa que que o assembly está localizado na mesma pasta como esse aplicativo. Um assembly compartilhado está disponível para uso por vários aplicativos no computador. Para criar um assembly compartilhado, você deve assinar o assembly com um nome forte e instalar o assembly no GAC (global assembly cache) no computador de destino.

Para obter mais informações sobre como assinar o assembly com um nome forte e instalar o assembly no GAC (cache de assembly global), visite o seguinte site:
http://msdn2.microsoft.com/en-us/library/xc31ft41(vs.71).aspx
Você deve usar ambos o / tlb: opção e o / codebase alternam quando você registrar o assembly. O / tlb: opção gera e registra uma biblioteca de tipos e a opção / codebase registra o local do assembly gerenciado no registro do Windows. Se você não usar a opção / codebase e o assembly não foi instalado no GAC (global assembly cache), você deve colocar uma cópia do assembly para a pasta de cada aplicativo do cliente COM (EXE) para que o assembly pode ser localizado pelo common language runtime (CLR).

Para gerar e registrar uma biblioteca de tipos e registrar o local do assembly gerenciado, digite o seguinte comando no prompt de comando:
Regasm AssemblyName.dll /tlb: FileName.tlb /codebase

Criar um assembly podem ser chamado de COM no Visual Basic .NET

  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Em Project Types , clique em Projetos do Visual Basic .

    Observação No Visual Studio2005 clique Visual Basic em Tipos de projeto .
  4. Em modelos , clique em Class Library .
  5. Nome do projeto TestProj e, em seguida, clique em OK .

    Por padrão, Class1 é criado.
  6. No menu Exibir , clique em Solution Explorer .
  7. Clique com o botão direito do mouse Class1.vb e, em seguida, clique em Excluir . Clique em OK para confirmar a exclusão do arquivo de origem Class1.vb.
  8. No menu Project , clique em Adicionar classe .
  9. Em modelos , clique em COM Class .
  10. Nomeie a classe COMClass1.vb e, em seguida, clique em Abrir

    COMClass1 é criado com o código a seguir.
    <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 Project Name com o botão direito do mouse e, em seguida, clique em Propriedades .
  13. Em Propriedades de configuração , clique em criar .
  14. Verifique se que verifica se registrar para interoperabilidade COM caixa está selecionada e, em seguida, clique em OK .
  15. No menu Build , clique em Build Solution para criar o projeto.
  16. Inicie o Visual Basic 6.0.
  17. No menu arquivo , clique em New Project e, em seguida, clique para selecionar EXE padrão na caixa de diálogo New Project .

    Por padrão, um formulário que é denominado Form1 é criado.
  18. No menu Project , clique em referências .
  19. Na lista Referências disponíveis , clique duas vezes para selecionar TestProj e, em seguida, clique em OK .
  20. Adicione um botão de comando ao formulário.
  21. Clique duas vezes 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 Executar , clique em Iniciar .
  24. Clique no botão de comando.

    Você deve receber uma mensagem que exibe 100.

Referências

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

Propriedades

ID do artigo: 817248 - Última revisão: segunda-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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