Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Program, který používá veřejné symboly definované knihovnou DLL, se říká, že je importuje. Když vytváříte soubory hlaviček pro aplikace, které používají vaše knihovny DLL k sestavení, použijte __declspec(dllimport) u deklarací veřejných symbolů. Klíčové slovo __declspec(dllimport) funguje bez ohledu na to, jestli exportujete se soubory .def nebo s klíčovým slovem __declspec(dllexport) .
Pokud chcete, aby byl kód čitelnější, definujte makro a __declspec(dllimport) pak pomocí makra deklarujte každý importovaný symbol:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
Použití __declspec(dllimport) je volitelné u deklarací funkcí, ale kompilátor vytvoří efektivnější kód, pokud použijete toto klíčové slovo. Musíte však použít __declspec(dllimport) pro import spustitelný soubor pro přístup k veřejným datovým symbolům a objektům knihovny DLL. Všimněte si, že uživatelé knihovny DLL stále potřebují propojit s knihovnou importu.
Stejný hlavičkový soubor můžete použít pro knihovnu DLL i klientskou aplikaci. K tomu použijte speciální symbol preprocesoru, který označuje, zda vytváříte knihovnu DLL nebo vytváříte klientskou aplikaci. Příklad:
#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif
class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };