Sdílet prostřednictvím


Import do aplikace s použitím deklarace __declspec(dllimport)

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 ... };

Co chcete udělat?

O čem chcete vědět víc?

Viz také

Import do aplikace