Você está offline; aguardando reconexão

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

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 817248
INTRODUÇÃO
Este artigo descreve como usar o Microsoft.NET de Visual Basic ou Microsoft Visual Basic 2005 para criar um assembly gerenciado que pode ser chamado de Microsoft Visual Basic 6.0.
Mais Informações

Diretrizes para expor tipos .NET para COM

Quando você quiser expor os tipos em um assembly Microsoft.NET para aplicativos de modelo de objeto componente (COM), considere os seguintes requisitos de interoperabilidade de COM em tempo de design. Tipos gerenciados (classe, interface, struct, enume outros) interagem bem com aplicativos cliente COM quando você seguir estas diretrizes:
  • Definir interfaces e implementá-los explicitamente na classes.COM interop fornece um mecanismo para gerar automaticamente uma interface thatcontains todos os membros da classe e os membros de sua classe base. No entanto, é melhor fornecer interfaces explícitas e implementar themexplicitly.
  • Declare todos os tipos gerenciados que deseja expor para COM aspublic. Apenas tipos públicos em um assembly registrados e exportados a biblioteca thetype. Portanto, apenas tipos públicos são visíveis para COM.
  • Declare todos os membros de tipo (métodos, propriedades, campos, andevents) que você deseja expor a COM como pública. Membros de tipos públicos mustalso ser pública seja visível para COM. Por padrão, todos os tipos públicos e membersare visível. Use o atributo ComVisibleAttribute se oculte um tipo ou um membro do membro ou controltype visibilidade para aplicativos cliente COM.
  • Tipos devem ter um construtor público padrão para beinstantiated por meio de COM. Managed, tipos públicos são visíveis para COM. No entanto, sem um construtor público padrão (um construtor sem argumentos), COMclients não é possível criar uma instância do tipo. COM clientes ainda podem usar thetype se o tipo for instanciado de outra forma e a instância é retornada para o cliente COM. Você pode incluir construtores sobrecarregados que aceitam varyingarguments para esses tipos. No entanto, construtores que aceita argumentos podem onlybe chamado a partir de código gerenciado do (.NET).
  • Tipos não podem ser abstract. Nenhum dos clientes COM nem. NETclients pode criar instâncias de tipos abstratos.
  • Use o modelo COMClass no .NET de Visual Basic ou no Visual Basic 2005. Quando youadd uma nova classe que você pretende expor a aplicativos do COM, considere usingthe COMClass modelo fornecido pelo .NET de Visual Basic ou pelo Visual Basic2005. O modelo COMClass cria uma classe que inclui o atributo COMClassAttribute e gera os GUIDs para a identificação de eventos que são expostos pelo seu tipo, a identificação da Interface e o CLSID. Além disso, o modelo de COMClass cria um construtor público sem parâmetros. Essa é a maneira mais fácil para criar uma nova classe que segue as diretrizes para tipos que pode ser chamado de creatingCOM.

Registrando o assembly .NET para interoperabilidade COM e a criação de uma biblioteca de tipos

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

No computador de desenvolvimento, no Visual Studio Microsoft.NET ou o Microsoft Visual Studio 2005 automaticamente cria uma biblioteca de tipos e registra-o durante o processo de compilação se a caixa de seleção Register for COM Interop é selecionada em Propriedades de configuração do projeto. Se você usou o modelo COMClass quando você criou a classe, Visual Studio .NET de ou Visual Studio 2005 automaticamente seleciona a caixa de seleção Register for COM Interop . Para verificar se a caixa de seleção Register for COM Interop é selecionada no Visual Studio .NET de ou no Visual Studio 2005, siga estas etapas:
  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. Abra a solução que contém o projeto que você wantto construir para interoperabilidade COM.
  3. No menu Exibir , clique em SolutionExplorer.
  4. No Solution Explorer, clique com botão direito no projeto que você wantto construir para interoperabilidade e, em seguida, clique emPropriedades.
  5. Clique em Configuration Propertiese thenclick o nó Construir .

    Observação: No 2005 Visual Studio, clique em Compilar na leftpane.
  6. Clique para selecionar a caixa de seleção Register for COMInterop . Essa opção somente é ativada na classe libraryprojects.
  7. Clique em OK para fechar a caixa de diálogo PropertyPages .
Se o Visual Studio 2005 ou o Visual Studio .NET de não está instalado ou se você precisa gerar e registrar um arquivo de biblioteca (. tlb) de tipo para o assembly gerenciado manualmente, use a ferramenta de registro de Assembly (RegAsm.exe) com a opção /TLB . Você também deve usar a opção /Codebase se o assembly gerenciado é um conjunto de módulos particular e você pretende colocar o assembly gerenciado em uma pasta diferente do processo do host (EXE).

Um conjunto de módulos particular é implantado em um aplicativo e está disponível para uso exclusivo desse aplicativo. Outros aplicativos não compartilham o assembly particular. Conjuntos privados devem ser instalados na mesma pasta que o processo de host (EXE). Com um aplicativo cliente COM, isso significa que o conjunto está localizado na mesma pasta do 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 Cache de Assembly Global (GAC) no computador de destino.

Para obter mais informações sobre como assinar o assembly com um nome forte e instalar o assembly no Global Assembly Cache (GAC), visite o seguinte site da Microsoft:Você deve usar ambos os /tlb: switch e o /Codebase alternam quando você registra o assembly. O /tlb: switch 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 Cache de Assembly Global (GAC), você deve colocar uma cópia do assembly para a pasta de cada aplicativo de cliente COM (EXE) para que o assembly pode ser localizado, o 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 módulo que pode ser chamado COM no .NET de Visual Basic

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

    Observação: No Visual Studio2005 clique em Visual Basic emTipos de projeto.
  4. Em modelos, clique em ClassLibrary.
  5. Nomeie o projeto TestProj e, em seguida, clique emOK.

    Por padrão, Class1 é criado.
  6. No menu Exibir , clique em SolutionExplorer.
  7. Clique com botão direito Class1. vbe, em seguida, clique emExcluir. Clique em OK para confirmar a exclusão do arquivo de origem Class1. vb.
  8. No menu projeto , clique em AddClass.
  9. Em modelos, clique em COMClass.
  10. Nomeie a classe COMClass1.vb e, em seguida, clique emAbrir

    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 SubEnd Class
  11. Adicione a seguinte função para COMClass1.
       Public Function myFunction() As Integer      Return 100   End Function
  12. No Solution Explorer, clique com botão direitoNome do projetoe, em seguida, clique emPropriedades.
  13. Em Propriedades de configuração, clique emcriar.
  14. Verifique se a caixa de seleção Register for COM Interopestá selecionada e, em seguida, clique em OK.
  15. No menu Build , clique em BuildSolution para criar o projeto.
  16. Inicie o Visual Basic 6.0.
  17. No menu arquivo , clique em NewProjecte em seguida, clique para selecionar a caixa de diálogoNovo projetoStandard EXE .

    Por padrão, um formulário que isnamed Form1 é criado.
  18. No menu projeto , clique emreferências.
  19. Na lista Referências disponíveis , clique duas vezes para selecionar TestProje, em seguida, clique emOK.
  20. Adicione um botão de comando ao formulário.
  21. Clique duas vezes em Command1 para abrir o Codewindow.
  22. Adicione o seguinte código ao evento Command1_Click .
    Dim myObject As TestProj.COMClass1Set myObject = New TestProj.COMClass1MsgBox myObject.myFunction
  23. No menu Executar , clique emIniciar.
  24. Clique no botão de comando.

    Você deverá receber uma mensagem que exibe 100.
Referências
Para obter mais informações, visite o seguinte site da Microsoft:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 817248 - Última Revisão: 02/15/2016 03:06:00 - Revisão: 7.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 KbMtpt
Comentários
/html>