Advertencia del compilador (nivel 3) C4768
__declspec
Se omiten los atributos antes de la especificación de vinculación
El compilador advierte si __declspec(...)
se aplica antes de la especificación de vinculación extern "C"
. Anteriormente, el compilador ignoraría el atributo, lo que podría tener implicaciones para el tiempo de ejecución.
Comentarios
Esta advertencia es nueva en la versión 15.3 de Visual Studio 2017, que la dejó desactivada de manera predeterminada. Está habilitada de manera predeterminada como advertencia de nivel 3 a partir de la versión 15.5 de Visual Studio 2017. Para información sobre cómo deshabilitar las advertencias por versión del compilador, consulte Advertencias del compilador por versión del compilador.
Ejemplo
El código siguiente produce la advertencia C4768:
__declspec(noinline) extern "C" HRESULT __stdcall // C4768: __declspec attributes before linkage specification are ignored
Para corregir la advertencia, coloque primero extern "C"
:
extern "C" __declspec(noinline) HRESULT __stdcall