Compartilhar via


módulo (C++)

Define o bloco de biblioteca no arquivo. idl.

[ module (
   type=dll,
   name=string,
   version=1.0,
   uuid=uuid,
   lcid=integer,
   control=boolean,
   helpstring=string,
   helpstringdll=string,
   helpfile=string,
   helpcontext=integer,
   helpstringcontext=integer,
   hidden=boolean,
   restricted=boolean,
   custom=string,
   resource_name=string,
) ];

Parâmetros

  • tipo de (opcional)
    Pode ser um dos seguintes:

    • DLL adiciona funções e classes que permitem a DLL resultante funcionar como um servidor de COM em processo.Este é o valor padrão.

    • exe adiciona funções e classes que permitem o resultante executável para funcionar como um servidor COM processo ' Desatualizado '.

    • serviço adiciona funções e classes que permitem o resultante executável para funcionar como um serviço NT.

    • não especificado desabilita a injeção de código ATL relacionado ao atributo de módulo: funções de apontar a injeção de classe de módulo de ATL, _AtlModule de instância global e entrada.Não desative a injeção de código ATL devido a outros atributos no projeto.

  • nome (opcional)
    O nome do bloco de biblioteca.

  • versão (opcional)
    O número de versão que você deseja atribuir ao bloco de biblioteca.O valor padrão é 1.0.

  • uuid
    A identificação exclusiva para a biblioteca.Se você omitir esse parâmetro, uma ID será gerada automaticamente para a biblioteca.Talvez você precise recuperar o uuid de seu bloco de biblioteca, o que pode ser feito usando o identificador __uuidof (o nome da biblioteca).

  • LCID
    O parâmetro de localização.Consulte lcid para obter mais informações.

  • controle (opcional)
    Especifica que todos os coclasses de na biblioteca de controles.

  • HelpString
    Especifica a biblioteca de tipos.

  • helpstringdll (opcional)
    Define o nome do arquivo. dll para usar realizar uma pesquisa de seqüência de caracteres do documento.Consulte helpstringdll para obter mais informações.

  • arquivo de ajuda (opcional)
    O nome do arquivo de ajuda para a biblioteca de tipos.

  • HelpContext (opcional)
    A identificação ajuda para esta biblioteca de tipos.

  • helpstringcontext (opcional)
    Consulte helpstringcontext para obter mais informações.

  • oculto (opcional)
    Impede que a biblioteca inteira seja exibida.Esse uso é destinado a uso dos controles.Hosts precisam criar uma nova biblioteca de tipos que envolve o controle com propriedades estendidas.Consulte o oculto atributo MIDL para obter mais informações.

  • restrito (opcional)
    Os membros da biblioteca não podem ser chamados arbitrariamente.Consulte o restritos atributo MIDL para obter mais informações.

  • personalizado (opcional)
    Um ou mais atributos; Isso é semelhante do personalizado atributo.O primeiro parâmetro para custom é o GUID do atributo.Por exemplo:

    [module(custom={guid,1}, custom={guid1,2})]
    
  • resource_name
    A identificação do recurso de seqüência de caracteres do arquivo. rgs usado para registrar a ID de aplicativo da DLL, executável ou de serviço.Quando o módulo é do tipo serviço, esse argumento também é usado para obter a identificação da seqüência de caracteres que contém o nome do serviço.

ObservaçãoObservação

O arquivo. rgs e a seqüência de caracteres que contém o nome do serviço devem conter o mesmo valor numérico.

Comentários

A menos que você especifique o restritos parâmetro para emitidl, módulo de é necessária em qualquer programa que usa atributos de C++.

Um bloco de biblioteca será criado se, além de módulo atributo, código-fonte também usa dispinterface, dual, objeto, ou um atributo que implica coclass.

Um bloco de biblioteca é permitido em um arquivo. idl.Várias entradas de módulo no código-fonte serão mescladas com os valores de parâmetro mais recentes que estão sendo implementados.

Se esse atributo é usado dentro de um projeto que usa a ATL, o comportamento das alterações de atributo.Além do comportamento acima, o atributo também insere um objeto global (chamado _AtlModule) do tipo correto e o código de suporte adicional.Se o atributo for autônomo, ele insere uma classe derivada do tipo de módulo correto.Se o atributo for aplicado a uma classe, ele adiciona uma classe base do tipo de módulo correto.O tipo correto é determinado pelo valor da type parâmetro:

Exemplo

O código a seguir mostra como criar um bloco de biblioteca no arquivo. idl gerado.

// cpp_attr_ref_module1.cpp
// compile with: /LD
[module(name="MyLibrary", version="1.2", helpfile="MyHelpFile")];

O código a seguir mostra o que você pode fornecer sua própria implementação de uma função que apareceria no código que foi injetado como resultado do uso do módulo de.Consulte /Fx para obter mais informações sobre como exibir o código injetado.Para substituir uma das funções inseridas pelo módulo de atributo, fazem uma classe que conterá a implementação da função e verifique o módulo atributo aplicado a essa classe.

// cpp_attr_ref_module2.cpp
// compile with: /LD /link /OPT:NOREF
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
#include <atlplus.h>

// no semicolon after attribute block
[module(dll, name="MyLibrary", version="1.2", helpfile="MyHelpFile")] 
// module attribute now applies to this class
class CMyClass {
public:
BOOL WINAPI DllMain(DWORD dwReason, LPVOID lpReserved) {
   // add your own code here
   return __super::DllMain(dwReason, lpReserved);
   }
};

Requisitos

Contexto de atributo

Se aplica a

Em qualquer lugar

Reproduzíveis

Não

Atributos obrigatórios

Nenhum

Atributos inválidos

Nenhum

Para obter mais informações, consulte Atributo contextos.

Consulte também

Referência

usesgetlasterror

library

HelpContext

HelpString

HelpFile

versão (C++)

Outros recursos

Atributos IDL

Atributos de classe

Atributos autônomos

TypeDef, Enum, união e atributos Struct

Attributes Samples