Importowanie do aplikacji przy użyciu atrybutu __declspec(dllimport)
Program, który używa publicznego symboli zdefiniowanych przez bibliotekę DLL mówi się je zaimportować.Po utworzeniu plików nagłówkowych w przypadku aplikacji korzystających z bibliotek DLL do budowania z, użycie __declspec(dllimport) w deklaracjach publicznych symboli.Słowo kluczowe __declspec(dllimport) działa, czy eksportować z plikami o rozszerzeniu def lub z __declspec(dllexport) słowa kluczowego.
Aby zwiększyć czytelność kodu, należy zdefiniować makro dla __declspec(dllimport) , a następnie użyć makra uznaniu każdego symbolu przywożone:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
Za pomocą __declspec(dllimport) jest nieobowiązkowe w deklaracji funkcji, ale kompilator generuje kod bardziej efektywne użycie słowa kluczowego.Jednakże, należy użyć __declspec(dllimport) dla przywozu pliku wykonywalnego dostęp do danych publicznych symbole i obiekty biblioteki DLL.Należy zauważyć, że użytkownicy biblioteki DLL nadal konieczne jest połączenie z biblioteką importu.
Można użyć tego samego pliku nagłówka dla biblioteki DLL i aplikacji klienckiej.W tym celu należy użyć specjalnego preprocesora symbol, który wskazuje, czy budowanie biblioteki DLL lub budowania aplikacji klienta.Na przykład:
#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif
class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };