Importando para um aplicativo usando __declspec(dllimport)
Um programa que usa símbolos públicos definidos por uma DLL é considerado como e. Quando você cria arquivos de cabeçalho dos aplicativos que usa seus dlls para criar o, use __declspec(dllimport) em declarações de símbolos públicos. A palavra-chave __declspec(dllimport) funcionará se você exportar com arquivos de .def ou com a palavra-chave de __declspec(dllexport) .
Para fazer seu código mais legível, defina uma macro para __declspec(dllimport) e então use a macro para declarar cada símbolo importado:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
Usar __declspec(dllimport) é opcional em declarações de função, mas o compilador gerencia um código mais eficiente se você usar essa palavra-chave. Porém, você deve usar __declspec(dllimport) para que o executável importando acesse os símbolos e os objetos de dados públicos da DLL. Observe que os usuários do DLL ainda precisam 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ê estiver criando o DLL ou está 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 ... };