Importowanie do aplikacji przy użyciu __declspec(dllimport)
Program, który używa publicznego symbole zdefiniowane przez bibliotekę DLL mówi się je importować.Podczas tworzenia plików nagłówkowych dla aplikacji korzystających z biblioteki DLL do konstruowania, __declspec(dllimport) na deklaracjach publicznych symbole.Słowo kluczowe __declspec(dllimport) działa czy eksportować z plikami .def lub z opcję __declspec(dllexport) słowa kluczowego.
Aby zwiększyć czytelność kodu, należy zdefiniować makro dla __declspec(dllimport) , a następnie użyć makra do zgłoszenia każdego zaimportowanego symbolu:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
Za pomocą __declspec(dllimport) jest nieobowiązkowe w deklaracji funkcji, ale kompilator tworzy kod bardziej efektywne użycie słowa kluczowego.Jednakże, należy użyć __declspec(dllimport) dla przywozu pliku wykonywalnego dostęp do biblioteki DLL symbole publiczne dane i obiekty.Uwaga Użytkownicy biblioteki DLL nadal muszą połączyć się z biblioteki import.
Można użyć tego samego pliku nagłówka, zarówno dla biblioteki DLL i aplikacji klienta.Aby to zrobić, należy użyć specjalnych symboli preprocesora, która wskazuje, czy są budowania 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 ... };