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