Importare in un'applicazione tramite __declspec(dllimport)

Un programma che usa simboli pubblici definiti da una DLL viene detto di importarli. Quando si creano file di intestazione per le applicazioni che usano le DLL da compilare con, usare __declspec(dllimport) nelle dichiarazioni dei simboli pubblici. La parola chiave __declspec(dllimport) funziona sia se si esportano file con estensione def o con la __declspec(dllexport) parola chiave .

Per rendere il codice più leggibile, definire una macro per __declspec(dllimport) e quindi usare la macro per dichiarare ogni simbolo importato:

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

L'uso __declspec(dllimport) è facoltativo nelle dichiarazioni di funzione, ma il compilatore produce codice più efficiente se si usa questa parola chiave. Tuttavia, è necessario usare __declspec(dllimport) per l'importazione dell'eseguibile per accedere ai simboli e agli oggetti dati pubblici della DLL. Si noti che gli utenti della DLL devono comunque collegarsi a una libreria di importazione.

È possibile usare lo stesso file di intestazione sia per la DLL che per l'applicazione client. A tale scopo, usare un simbolo speciale del preprocessore che indica se si compila la DLL o si compila l'applicazione client. Ad esempio:

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

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

Cosa vuoi fare?

Scegliere l'argomento su cui visualizzare maggiori informazioni

Vedi anche

Importazione in un'applicazione