Artigo: 143258 - Última revisão: quinta-feira, 1 de Julho de 2004 - Revisão: 1.3

Como criar constantes e declarações de DLL na biblioteca de tipos

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 | Reduzir tudo

Sumário

Pode ser muito útil compactar constantes definições e declarações de DLL num tipo de biblioteca. Visual Basic permite-lhe aceder a bibliotecas e respectivo conteúdo. Depois de ter efectuado uma referência para a biblioteca de tipos, pode visualizar as informações no localizador de objectos do Visual Basic próprio. Bibliotecas de tipos também são superiores que também pode fornecer ajuda cadeias juntamente com as declarações para permitir sempre que o utilizador sabe que uma definição destina-se.

Mais Informação

Para criar uma biblioteca de tipos, tem da linha de comandos programas UUID.EXE e MKTYPLIB.EXE. Estes programas são fornecidos com o Visual C++.

Suponha que pretendia criar uma biblioteca de tipos com três constantes de número inteiro, uma constante de cadeia e uma declaração de API do Windows. Segue-se o código de idioma de descrição do objecto (ODL) necessário para produzir a biblioteca de tipos. Leia o ODL e existe irá ser comentários explicando o que cada secção é e por que razão é necessário-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 este código, copiá-lo para um ficheiro de texto e chamá-lo test.odl e, em seguida, execute o programa de linha de comandos MkTypLib da seguinte forma:
   mktyplib /nocpp test.odl
				

É apresentada a seguinte mensagem:
   Successfully generated type library 'test.tlb'.
				

Para utilizar a biblioteca de tipos a partir do Visual Basic

  1. Inicie o Visual Basic com um novo projecto.
  2. No menu Ferramentas, seleccione as referências. Esta será apresentada a referência a caixa de diálogo; clique botão Procurar para procurar o ficheiro Test.tlb. Depois de ter localizado o ficheiro, clique em OK.
  3. A biblioteca de tipos irá agora ser a lista de referências, certifique-se de que está marcada e sair da caixa de diálogo referências.
  4. Desenhe um botão de comando no form1.
  5. Introduza o seguinte código:
          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. Executar o programa; verá form1 minimizar e, em seguida, verá uma caixa de mensagem para cada constante que são definidos 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 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit 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 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: 143258  (http://support.microsoft.com/kb/143258/en-us/ )