Partilhar via


Importar para um aplicativo usando __declspec(dllimport)

Um programa que usa símbolos públicos definidos por uma DLL diz-se que os importa. Quando você cria arquivos de cabeçalho para aplicativos que usam suas DLLs para compilar com, use __declspec(dllimport) nas declarações dos símbolos públicos. A palavra-chave __declspec(dllimport) funciona se você exportar com arquivos .def ou com a __declspec(dllexport) palavra-chave.

Para tornar o código mais legível, defina uma macro para __declspec(dllimport) e use a macro para declarar cada símbolo importado:

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

O uso __declspec(dllimport) é opcional em declarações de função, mas o compilador produz um código mais eficiente se você usar essa palavra-chave. No entanto, você deve usar __declspec(dllimport) para que o executável de importação possa acessar os símbolos de dados públicos da DLL e objetos. Observe que os usuários da sua DLL ainda precisam se vincular a uma biblioteca de importação.

Você pode usar o mesmo arquivo de cabeçalho para a DLL e o aplicativo cliente. Para fazer isso, use um símbolo de pré-processador especial que indica se você está criando a DLL ou criando o aplicativo cliente. Por exemplo:

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

O que pretende fazer?

Sobre o que quer saber mais?

Ver também

Importando para um aplicativo