Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program, który używa publicznych symboli zdefiniowanych przez bibliotekę DLL, mówi się, że je importuje. Podczas tworzenia plików nagłówkowych dla aplikacji, które używają bibliotek DLL do kompilowania, użyj ich __declspec(dllimport) w deklaracjach symboli publicznych. Słowo kluczowe __declspec(dllimport) działa niezależnie od tego, czy eksportujesz z plikami def, czy ze __declspec(dllexport) słowem kluczowym.
Aby kod był bardziej czytelny, zdefiniuj makro, __declspec(dllimport) a następnie za pomocą makra zadeklaruj każdy zaimportowany symbol:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
Użycie __declspec(dllimport) jest opcjonalne w deklaracjach funkcji, ale kompilator tworzy bardziej wydajny kod, jeśli używasz tego słowa kluczowego. Jednak do importowania pliku wykonywalnego należy użyć __declspec(dllimport) , aby uzyskać dostęp do publicznych symboli i obiektów danych biblioteki DLL. Należy pamiętać, że użytkownicy biblioteki DLL nadal muszą łączyć się z biblioteką importu.
Możesz użyć tego samego pliku nagłówka zarówno dla biblioteki DLL, jak i aplikacji klienckiej. W tym celu należy użyć specjalnego symbolu preprocesora, który wskazuje, czy tworzysz bibliotekę DLL, czy kompilujesz aplikację kliencką. 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 ... };