dllexport, dllimport
Específico da Microsoft
Os atributos de classe de armazenamento dllexport e dllimport são extensões específicas da Microsoft para as linguagens C e C++. É possível usá-las para exportar e importar funções, dados e objetos para ou a partir de um DLL.
__declspec( dllimport ) declarator
__declspec( dllexport ) declarator
Comentários
Esses atributos definem explicitamente a interface da DLL para seu cliente, que pode ser o arquivo executável ou outro DLL. Declarar funções como dllexport elimina a necessidade de um arquivo de definição de módulo (.def), pelo menos em relação à especificação de funções exportadas. O atributo dllexport substitui a palavra-chave __export.
Se uma classe está marcada como declspec (dllexport), todas as especializações de modelos de classe na hierarquia de classe são marcadas implicitamente como declspec (dllexport). Isso significa que os modelos de classe são instanciados explicitamente e que os membros da classe devem ser definidos.
dllexport de uma função expõe a função com seu nome decorado. Para funções em C++, isso inclui a desconfiguração do nome. Para funções em C ou funções que são declaradas como "C" externa, isso inclui decoração de plataforma específica baseada na convenção de chamada. Se você não quiser a decoração de nome, use um arquivo .def (palavra-chave EXPORTS).
Ao declarar dllexport ou dllimport, você deve usar a sintaxe de atributo estendido e a palavra-chave __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 de 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:
FIM de Específico da Microsoft