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

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
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 pretende expor tipos dentro de um Microsoft .NET para aplicações Component Object Model (COM), considere os seguintes requisitos de interoperabilidade COM em tempo de estruturação. Os tipos geridos (classe, interface, estrutura, enumeraçãoe outros) interagem bem com aplicações de cliente COM quando siga estas directrizes:
  • Definir interfaces e explicitamente implementá-las no classes.COM interop fornece um mecanismo para gerar automaticamente um interface thatcontains todos os membros da classe e os membros da respectiva classe base. No entanto, é melhor fornecer interfaces explícitas e implementar themexplicitly.
  • Declare geridos todos os tipos que pretende expor a aspublic de COM. Apenas os tipos públicos numa assemblagem estão registados e exportados para a biblioteca thetype. Por conseguinte, apenas os tipos públicos são visíveis para COM.
  • Declare todos os membros de tipos (métodos, propriedades, campos, andevents) que pretende expor a COM como público. Os membros do público tipos mustalso ser pública para ser visível para COM. Por predefinição, todos os tipos públicos e membersare visível. Utilize o atributo de ComVisibleAttribute , se tiver de ocultar um tipo ou um membro de visibilidade TipoDeControlo ou um membro a aplicações de cliente do COM.
  • Tipos têm de ter um construtor predefinido público para beinstantiated através de COM. geridos, os tipos públicos são visíveis para COM. No entanto, sem um construtor predefinido público (um construtor sem argumentos), COMclients não é possível criar uma instância do tipo. Clientes COM podem ainda utilizar thetype se o tipo é instanciado na outra forma e a instância é devolvida ao cliente COM. Pode incluir sobrecarregados construtores que aceitam varyingarguments para estes tipos. No entanto, os construtores que aceitam argumentos podem onlybe chamado a partir de código (.NET) gerido.
  • Tipos não podem ser abstractos. Nenhum clientes COM nem. NETclients pode criar ocorrências de tipos abstractos.
  • Utilize o modelo de COMClass no Visual Basic .NET ou no Visual Basic 2005. Quando youadd uma nova classe que pretende expor às aplicações do COM, considere a hipótese de modelo de COMClass de usingthe que é fornecido pelo Visual Basic .NET ou por Visual Basic2005. O modelo de COMClass cria uma classe que inclui o atributo COMClassAttribute e gera o GUID para o CLSID, o ID de Interface e o ID de evento são expostas pelo seu tipo. Além disso, o modelo de COMClass cria um construtor público sem parâmetros. Esta é a forma mais fácil de criar uma nova classe que segue as directrizes para tipos de chamada de creatingCOM.

Registar a assemblagem .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 gerido, tem de registar a assemblagem de interoperabilidade COM e gerar uma biblioteca de tipos. Este registo deve ser efectuado em cada computador em que uma aplicação de cliente COM interage com a assemblagem. A biblioteca de tipos fornece informações de tipo sobre os tipos na assemblagem para aplicações de cliente COM expostas. O processo para o fazer depende se estiver a trabalhar no computador de desenvolvimento ou no computador de destino.

O computador de desenvolvimento Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 automaticamente cria uma biblioteca de tipos e regista-o durante o processo de compilação se Registar para interoperabilidade COM caixa de verificação estiver seleccionada nas propriedades de configuração do projecto. Se tiver utilizado o modelo de COMClass quando criou a classe, Visual Studio .NET ou Visual Studio 2005 selecciona automaticamente a caixa de verificação Registar para interoperabilidade COM . Para verificar que a caixa de verificação Registar para interoperabilidade COM está seleccionada no Visual Studio .NET ou 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 wantto criar para interoperabilidade COM.
  3. No menu Ver , clique em SolutionExplorer.
  4. No Solution Explorer, com o botão direito no projecto que wantto criar para interoperabilidade COM e, em seguida, clique emPropriedades.
  5. Clique em Propriedades de configuraçãoe thenclick o nó de Criar .

    Nota No Visual Studio 2005, clique em Compilar no leftpane.
  6. Clique para seleccionar a caixa de verificação Registar COMInterop . Esta opção só está activada na classe libraryprojects.
  7. Clique em OK para fechar a caixa de diálogo as páginas de propriedades .
Se não estiver instalado o Visual Studio .NET ou Visual Studio 2005, ou se tiver de gerar e registar um ficheiro de biblioteca de (tipos. tlb) do tipo da assemblagem gerida manualmente, utilize a ferramenta de registo da assemblagem (RegAsm.exe) com o parâmetro /TLB . Também deve utilizar o parâmetro /Codebase se a assemblagem gerida é uma assemblagem privada e pretender 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 uso exclusivo 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 de anfitrião (EXE). Com uma aplicação de cliente COM, isto significa que a assemblagem está localizada na mesma pasta que essa aplicação. Assemblagem partilhada está disponível para utilização por várias aplicações no computador. Para criar um conjunto partilhado, tem de assinar a assemblagem com um nome seguro e instalar a assemblagem em Global montagem Cache (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:Deve utilizar ambos os /tlb: comutador e o /Codebase mudam quando registar a assemblagem. O /tlb: parâmetro gera e regista uma biblioteca de tipos, e o parâmetro /Codebase regista a localização da assemblagem gerida no registo do Windows. Se não utilizar o parâmetro /Codebase e a assemblagem não foi instalada em Cache de assemblagem Global (GAC), tem de colocar uma cópia da assemblagem para a pasta de cada aplicação de cliente do COM (EXE) para que a assemblagem pode ser localizada pelo common language runtime (CLR).

Gerar e registar uma biblioteca de tipos 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 pode ser chamada COM no Visual Basic .NET

  1. Inicie o Visual Studio .NET ou Visual Studio 2005.
  2. No menu ficheiro , aponte paraNovoe, em seguida, clique em projecto.
  3. Em Tipos de projecto, clique em Projectos do VisualBasic.

    Nota No Visual Studio2005 clique em Visual Basic emTipos de projecto.
  4. Em modelos, clique em ClassLibrary.
  5. Nome do projecto TestProj e, em seguida, clique emOK.

    Por predefinição, é criado Class1.
  6. No menu Ver , clique em SolutionExplorer.
  7. Class1.vbcom o botão direito e, em seguida, clique emEliminar. Clique em OK para confirmar a eliminação do ficheiro de origem de Class1.vb.
  8. No menu projecto , clique em AddClass.
  9. Em modelos, clique em COMClass.
  10. Nome da classe COMClass1.vb e, em seguida, clique emAbrir

    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 SubEnd Class
  11. Adicione a seguinte função para COMClass1.
       Public Function myFunction() As Integer      Return 100   End Function
  12. No Solution Explorer, com o botão direitoNome do projectoe, em seguida, clique emPropriedades.
  13. Em Propriedades de configuração, clique emCriar.
  14. Verifique se está seleccionada a caixa de verificação do registo para interoperabilidade COMe, em seguida, clique em OK.
  15. No menu de criação , clique em BuildSolution para compilar o projecto.
  16. Inicie o Visual Basic 6.0.
  17. No menu ficheiro , clique em NewProjecte, em seguida, clique em para seleccionar a caixa de diálogoNovo projectoEXE padrão .

    Por predefinição, que isnamed Form1 é criado um formulário.
  18. No menu projecto , clique emReferences.
  19. Na lista de Referências disponíveis , faça duplo clique para seleccionar a TestProje, em seguida, clique emOK.
  20. Adicione um botão de comando ao formulário.
  21. Faça duplo clique no 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 Run menu, clique emIniciar.
  24. Clique no botão de comando.

    Deverá receber amessage que apresenta a 100.
Referências
Para mais informações, visite o seguinte Web site da Microsoft:

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 817248 - Última Revisão: 02/15/2016 02:55: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