Compiler Warning (level 3) C4768
__declspecattributes before linkage specification are ignored
The compiler warns if
__declspec(...) is applied before the
extern "C" linkage specification. Previously, the compiler would ignore the attribute, which could have runtime implications.
This warning is new in Visual Studio 2017 version 15.3, which left it off by default. It's enabled by default as a level 3 warning starting in Visual Studio 2017 version 15.5. For information on how to disable warnings by compiler version, see Compiler warnings by compiler version.
The following code produces warning C4768:
__declspec(noinline) extern "C" HRESULT __stdcall // C4768: __declspec attributes before linkage specification are ignored
To fix the warning, put
extern "C" first:
extern "C" __declspec(noinline) HRESULT __stdcall