Compartilhar via


dllexport, dllimport

Específico da Microsoft

Atributos de armazenamento classe de dllexport e dllimport vstemplate extensões são específicas para idiomas de C e C++.Você pode usá-los para exportar e importar dados, funções, e a objetos ou de uma DLL.

__declspec( dllimport ) declarator __declspec( dllexport ) declarator

Comentários

Esses atributos definam explicitamente a interface de DLL para o cliente, que pode ser o arquivo executável ou outro DLL.Declarar funciona como dllexport elimina a necessidade para um arquivo de definição .def módulo (), pelo menos em relação à especificação de funções exportadas.O atributo de dllexport palavra-chave overrides de __export .

Se uma classe é declspec marcado como (dllexport), todas as especializações de modelos de classe na hierarquia de classe estão marcadas como implicitamente o declspec dllexport ().Isso significa que os modelos de classe são instanciados explicitamente e membros da classe devem ser definidos.

dllexport de uma função expõe a função com seu nome adornado.Para funções C++, isso inclui o nome de massacre.Para funções de C ou funções que são declaradas como “C” extern, isso inclui a decoração plataforma específica que é baseada na convenção de chamada.Se você não quiser a decoração de nome, use um arquivo de .def (palavra-chave deEXPORTAÇÕES ).

Quando você declara dllexport ou dllimport, você deve usar sintaxe de atributo estendido e palavras-chave de __declspec .

Exemplo

// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();

Como alternativa, para tornar seu código mais legível, você pode usar definições macro:

#define DllImport   __declspec( dllimport )
#define DllExport   __declspec( dllexport )

DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;

Para obter mais informações, consulte

Específico da Microsoft de END

Consulte também

Referência

__declspec

Palavras-chave C++