ID do artigo: 143258 - Última revisão: quinta-feira, 1 de julho de 2004 - Revisão: 1.3

Como criar constantes e declaração de DLL em uma biblioteca de tipo

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Pode ser muito útil empacotar constantes definições e declarações de DLL em um tipo de biblioteca. Visual Basic permite que você acessar bibliotecas de tipos e seu conteúdo. Depois de fazer uma referência à biblioteca tipo, você pode exibir suas informações no Pesquisador de objeto do Visual Basic próprio. Bibliotecas de tipos também são superiores em que você também pode fornecer seqüências de caracteres de ajuda com as declarações para sempre permitir que o usuário sabe que uma definição é para.

Mais Informações

Para criar uma biblioteca de tipos, você precisa da linha de comando programas UUID.EXE e MKTYPLIB.EXE. Esses programas são fornecidos com o Visual C++.

Vamos supor que queremos criar uma biblioteca de tipos com três constantes inteiras, uma constante de seqüência de caracteres e uma declaração de API do Windows. A seguir está o código ODL (Object Description Language) necessário para produzir a biblioteca de tipos. Ler a ODL e haverá ser comentários explicando o que é a cada seção e por quê precisamos-los.
   [
   // The Universal Unique identifier (UUID), needs to be generated by
   // using uuid.exe program. Then, you paste the value into the type
   // library.
   uuid(006da100-110f-11cf-83b2-00aa0068851c),

   // The Help String comes up in the object browser as the second
   // piece of the library description in the "Libraries/Projects" combo
   // box.
   helpstring("Constants TypeLib"),

   // The Locale Identifier (LCID), identifies the language the type
   // library applies to.
   lcid(0x9),

   // This is the version number of the type library.
   version(1.0)
   ]

   // This is the name of the type library. It comes up in the object
   // browser as the first piece of the library description in the
   // "Libraries/Projects" combo box.
   library MyLib
   {
     // Define numeric constants.
     typedef enum tagConst
        {
          mylibConst1,       // Make the constant mylibconst1 equal to 0.
          mylibConst2=5,     // Make the constant mylibconst2 equal to 5.
          mylibConst3=7      // Make the constant mylibconst3 equal to 7.
        }Constants;

      // You need to define string constants in a module.
      // Modules also need to reference a dll name. In this case you don't
      // need to, so just give it a bogus name.
      [dllname("bogus")]
      module MoreConstants
       {
         // Define a constant mystr and assign it the value StringConstant.
         const LPSTR mystr="StringConstant";
       };

      // Now call a function located in the Windows API, specifically
      // User32.dll. Now you see why you need a dll name here, this is
      // where the API function will come from.
      [dllname("user32.dll")]
      module APIDeclare
       {
         // Give the API function a descriptive help line, this will
         // be seen in the Object browser. Then, you can declare the
         // function. The entry attribute specifies the identifier for the
         // entry point into the dll.
         // The in attribute specifies a parameter as a value going into
         // the function.
         //Note that the following two lines need to be all on one line.
   [helpstring("Test API function Declaration"), entry("CloseWindow")]_
    boolean

   CloseWindow([in] long Winhndl);
       };
   }
				

Para compilar esse código, copie-o para um arquivo de texto e chamá-lo test.odl e execute o programa de linha de comando MkTypLib da seguinte maneira:
   mktyplib /nocpp test.odl
				

A seguinte mensagem aparece:
   Successfully generated type library 'test.tlb'.
				

Para usar a biblioteca de tipos a partir do Visual Basic

  1. Inicie o Visual Basic com um novo projeto.
  2. No menu Ferramentas, selecione as referências. Isso abrirá a referência de caixa de diálogo; clique botão Procurar para procurar o arquivo Test.tlb. Após localizar o arquivo, clique em OK.
  3. Biblioteca de tipos do agora estar na lista de referências, verifique se que está marcada e sair da caixa de diálogo referências.
  4. Desenhe um botão de comando no form1.
  5. Insira o código a seguir:
          Private Sub Command1_Click()
    
          Dim x As Boolean
    
          'Call the Windows API function CloseWindow without making one
          'declare at all. Note that the CloseWindow API will close the current
          'window.
          x = CloseWindow(Me.hWnd)
    
          'Now print out the value of the constants in the type library
          'using message boxes.
          MsgBox mylibConst1
          MsgBox mylibConst2
          MsgBox mylibConst3
          MsgBox mystr
    
          End Sub
    						
  6. Execute o programa; você verá form1 minimizar e, em seguida, você verá uma caixa de mensagem para cada constante que definimos na nossa biblioteca de tipos e o valor para cada constante.

Referências

OLE 2 programadores referência volume 2

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 de 16 bits Enterprise Edition
  • Microsoft Visual Basic 4.0 de 32 Bits Enterprise Edition
Palavras-chave: 
kbmt kbhowto KB143258 KbMtpt
Tradução automáticaTraduçã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: 143258  (http://support.microsoft.com/kb/143258/en-us/ )