Definizione di funzioni inline C con dllexport e dllimportDefining Inline C Functions with dllexport and dllimport

Sezione specifica MicrosoftMicrosoft Specific

È possibile definire come inline una funzione con l'attributo dllexport.You can define as inline a function with the dllexport attribute. In questo caso, sempre creata ed esportata un'istanza della funzione, indipendentemente dal fatto che il modulo nel programma faccia riferimento alla funzione.In this case, the function is always instantiated and exported, whether or not any module in the program references the function. Si presuppone che la funzione venga importata da un altro programma.The function is presumed to be imported by another program.

È anche possibile definire come inline una funzione dichiarata con l'attributo dllimport.You can also define as inline a function declared with the dllimport attribute. In questo caso, è possibile espandere la funzione (conformemente alle specifiche di opzione del compilatore /Ob inline), ma non può essere mai creata un'istanza.In this case, the function can be expanded (subject to the /Ob (inline) compiler option specification) but never instantiated. In particolare, se viene preso in considerazione l'indirizzo di una funzione inline importata, viene restituito l'indirizzo della funzione contenuta nella DLL.In particular, if the address of an inline imported function is taken, the address of the function residing in the DLL is returned. Questo comportamento corrisponde a recuperare l'indirizzo di una funzione importata non inline.This behavior is the same as taking the address of a non-inline imported function.

I dati e le stringhe locali statici nelle funzioni inline mantengono le stesse identità tra DLL e il client come in un programma singolo (ovvero, un file eseguibile senza un'interfaccia DLL).Static local data and strings in inline functions maintain the same identities between the DLL and client as they would in a single program (that is, an executable file without a DLL interface).

Fare attenzione quando si forniscono funzioni inline importate.Exercise care when providing imported inline functions. Ad esempio, se si aggiorna la DLL, non presupporre che il client utilizzerà la versione modificata della DLL.For example, if you update the DLL, don't assume that the client will use the changed version of the DLL. Per assicurarsi che si stia caricando la versione corretta della DLL, ricompilare anche il client della DLL.To ensure that you are loading the proper version of the DLL, rebuild the DLL's client as well.

Fine sezione specifica MicrosoftEND Microsoft Specific

Vedere ancheSee Also

Funzioni di importazione ed esportazione di DLLDLL Import and Export Functions