visual c++ - advertencia C4995 contra error C4995
visual-c++ oculus (3)
Cuando construyo un proyecto (con VS2012) obtengo la siguiente producción varias veces:
warning C4995: ''DwmEnableComposition'': name was marked as #pragma deprecated
Cuando copio los archivos fuente de proyectos en otro proyecto (y una solución diferente) obtengo errores en lugar de advertencias (y la compilación no tiene éxito):
error C4995: ''DwmEnableComposition'': name was marked as #pragma deprecated
¿Hay algo que pueda hacer que reciba advertencias en lugar de errores?
Ese es el proyecto que estoy ejecutando (no es mi propio código): http://federico-mammano.github.io/Oculus-SDK-0.4.4-beta-OpenGL-Demo/ (el ejemplo de OpenGL)
El problema es la función DwmEnableComposition
. Está en desuso desde Windows 8.
Cuando el compilador encuentra un símbolo obsoleto como en este caso, emite C4995.
Más información:
Es probable que tenga habilitadas las ''comprobaciones SDL'' para el proyecto donde obtiene un error (en C / C ++ -> General). Es una opción en el asistente de ''nuevo proyecto''. Quítelo y volverá a ser una advertencia.
Acabo de confirmar este comportamiento en un proyecto existente, en el que hoy decidí habilitar las comprobaciones de SDL en el programa de prueba de una de mis bibliotecas de C ++. La función que marcó es una mía que marqué como obsoleta, pero no tiene nada que ver con la seguridad per se. Por lo tanto, digo que esto plantea la pregunta; ¿Por qué el compilador lo trata como un error, cuando en cualquier otro momento he utilizado comprobaciones de SDL que señalan usos como swprintf , C4995 es una advertencia ?