Delen via


Importeren in een toepassing met behulp van __declspec(dllimport)

Een programma dat gebruikmaakt van openbare symbolen die door een DLL zijn gedefinieerd, importeert deze. Wanneer u headerbestanden maakt voor toepassingen die uw DLL's gebruiken om te bouwen, gebruikt u __declspec(dllimport) voor de declaraties van de openbare symbolen. Het trefwoord __declspec(dllimport) werkt of u exporteert met .def-bestanden of met het __declspec(dllexport) trefwoord.

Als u de code beter leesbaar wilt maken, definieert u een macro voor __declspec(dllimport) en gebruikt u vervolgens de macro om elk geïmporteerd symbool te declareren:

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

Het gebruik __declspec(dllimport) is optioneel voor functiedeclaraties, maar de compiler produceert efficiëntere code als u dit trefwoord gebruikt. U moet echter voor het importeren van uitvoerbare bestanden gebruiken __declspec(dllimport) om toegang te krijgen tot de symbolen en objecten van openbare gegevens van het DLL-bestand. Houd er rekening mee dat de gebruikers van uw DLL nog steeds een koppeling moeten maken met een importbibliotheek.

U kunt hetzelfde headerbestand gebruiken voor zowel het DLL-bestand als de clienttoepassing. Gebruik hiervoor een speciaal preprocessorsymbool dat aangeeft of u de DLL bouwt of de clienttoepassing bouwt. Voorbeeld:

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

Wat u wilt doen?

Waar wil je meer over weten?

Zie ook

Importeren in een toepassing