Definizioni e dichiarazioni (C)
Specifico di Microsoft
L'interfaccia DLL fa riferimento a tutti gli elementi (funzioni e dati) che sono noti per essere esportati da alcuni programmi nel sistema; ovvero tutti gli elementi dichiarati come dllimport
o dllexport
. Tutte le dichiarazioni incluse nell'interfaccia DLL devono specificare l'attributo dllimport
o dllexport
. Tuttavia, la definizione può specificare solo l'attributo dllexport
. Ad esempio, la definizione di funzione seguente genera un errore del compilatore:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
DllImport int func() /* Error; dllimport prohibited in */
/* definition. */
{
return 1;
}
Anche questo codice genera un errore:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
DllImport int i = 10; /* Error; this is a definition. */
Tuttavia, questa è la sintassi corretta:
#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 dllimport
implica una dichiarazione. È necessario utilizzare la parola chiave extern
con dllexport
per forzare una dichiarazione; in caso contrario, una definizione è implicita.
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
extern DllImport int k; /* These are correct and imply */
Dllimport int j; /* a declaration. */
END Microsoft Specific
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per