Import do aplikace použitím __declspec(dllimport)
Program, který používá veřejné symboly, definované knihovnou DLL, tyto symboly importuje. Když vytváříte hlavičkové soubory pro aplikace, které používají k sestavení vaše DLL knihovny, použijte __declspec(DllImport) k deklaraci veřejných symbolů. Klíčové slovo __declspec(DllImport) pracuje buď s vámi exportovaními soubory .def nebo s klíčovým slovem __declspec(dllexport).
Aby byl Váš kód více čitelnější, definujte makro pro __declspec(DllImport) a poté použijte makro k deklaraci každého importovaného symbol:
#define DllImport __declspec( dllimport )
DllImport int j;
DllImport void func();
Použití __declspec(DllImport) je volitelné na způsobu deklarací, ale kompilátor vytváří více efektivnější kod, pokud použijete toto klíčové slovo. Je však nutné používat __declspec(DllImport) pro vkládání spustitelného souboru pro přístup DLL knihoven k veřejným datovým symbolům a objektům. Uvědomte si, že uživatelé vaší knihovny DLL potřebují mít stále připojeny importované knihovny.
Můžete použít stejný hlavičkový soubor pro knihovnu DLL a klientskou aplikaci. K tomu použijte speciální preprocesorový symbol, který označí, jestli sestavujete knihovnu DLL nebo 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 ... };