Avviso del compilatore (livello 3) C4768

__declspec attributi prima della specifica di collegamento vengono ignorati

Il compilatore avvisa se __declspec(...) viene applicato prima della specifica del extern "C" collegamento. In precedenza, il compilatore avrebbe ignorato l'attributo, con possibili implicazioni in fase di runtime.

Osservazioni:

Questo avviso è una novità di Visual Studio 2017 versione 15.3, che l'ha lasciata disattivata per impostazione predefinita. È abilitato per impostazione predefinita come avviso di livello 3 a partire da Visual Studio 2017 versione 15.5. Per informazioni su come disabilitare gli avvisi in base alla versione del compilatore, vedere Avvisi del compilatore per versione del compilatore.

Esempio

Il codice seguente genera l'avviso C4768:

__declspec(noinline) extern "C" HRESULT __stdcall // C4768: __declspec attributes before linkage specification are ignored

Per risolvere il problema, inserire prima extern "C":

extern "C" __declspec(noinline) HRESULT __stdcall