Definizioni e dichiarazioni (C)Definitions and Declarations (C)

Sezione specifica MicrosoftMicrosoft Specific

L'interfaccia DLL fa riferimento a tutti gli elementi (funzioni e dati) di cui si sa che sono esportati da un programma nel sistema, ossia tutti gli elementi dichiarati come dllimport o dllexport.The DLL interface refers to all items (functions and data) that are known to be exported by some program in the system; that is, all items that are declared as dllimport or dllexport. Tutte le dichiarazioni incluse nell'interfaccia DLL devono specificare l'attributo dllimport o dllexport.All declarations included in the DLL interface must specify either the dllimport or dllexport attribute. Tuttavia, la definizione può specificare solo l'attributo dllexport.However, the definition can specify only the dllexport attribute. Ad esempio, la definizione di funzione seguente genera un errore del compilatore:For example, the following function definition generates a compiler error:

#define DllImport   __declspec( dllimport )  
#define DllExport   __declspec( dllexport )  

DllImport int func()    /* Error; dllimport prohibited in */  
                        /* definition. */  
{  
   return 1;  
}  

Anche questo codice genera un errore:This code also generates an error:

#define DllImport   __declspec( dllimport )  
#define DllExport   __declspec( dllexport )  

DllImport int i = 10;      /* Error; this is a definition. */  

Tuttavia, questa è la sintassi corretta:However, this is correct syntax:

#define DllImport   __declspec( dllimport )  
#define DllExport   __declspec( dllexport )  

DllExport int i = 10;      /* Okay: this is an export definition. */  

L'uso di dllexport implica una definizione, mentre l'uso di dllimport implica una dichiarazione.The use of dllexport implies a definition, while dllimport implies a declaration. È necessario utilizzare la parola chiave extern con dllexport per forzare una dichiarazione; in caso contrario, una definizione è implicita.You must use the extern keyword with dllexport to force a declaration; otherwise, a definition is implied.

#define DllImport   __declspec( dllimport )  
#define DllExport   __declspec( dllexport )  

extern DllImport int k;   /* These are correct and imply */  
Dllimport int j;          /* a declaration. */      

Fine sezione specifica MicrosoftEND Microsoft Specific

Vedere ancheSee Also

Funzioni di importazione ed esportazione di DLLDLL Import and Export Functions