Visual Studio no solo es una de las herramientas de desarrollo mas avanzadas en el mercado, también es una plataforma llena de “soluciones propias” a ciertos problemas existentes en otras herramientas o plataformas de desarrollo.

Particularmente, en C y C++, existen versiones tanto oficiales como no oficiales de dichos lenguajes, así como compiladores que pueden provocar resultados inesperados al cambiar de uno a otro sin tener un código estándar. Es así como en ciertas oportunidades, al tener que editar un código fuente de algún programa hecho para “otro compilador”, aunque del mismo lenguaje, nos encontraremos con que el compilador derechamente o no compilara lanzando varios errores, o enviara varios warnings, muchos de estos últimos, innecesarios.

Ocurre que en Visual Studio al cargar algún código fuente de código estándar, este nos sorprenderá con varios warnings indicándonos que “algunas funciones no son seguras”, recomendándonos el uso de otras funciones que si son seguras (obviamente, que solo pertenecen a Visual Studio, que no son estándar y por lo tanto, al editar el código con estas funciones, automáticamente ya no nos compilara en otro lado). Si no queremos seguir esta sugerencia y tenemos varias decenas de warnings que nunca consideraremos, podemos ocultarlos agregando una instrucción a la compilación que nos es indicada en el mismo warning. El problema es donde insertar la instrucción de precompilación.

Supongamos que tenemos nuestro programa antiguo llamado listas.cpp. Creamos un nuevo proyecto en Visual Studio para C++ en consola Win32 y le indicamos que realizaremos un Proyecto Vacío. Cargamos en la carpeta de Archivos Fuente del Explorador de Soluciones un archivo ya existente, que será nuestro listas.cpp .

Cuando intentamos compilar, Visual Studio nos advierte lo siguiente:

Como se puede apreciar, una de las funciones mas comunes y estándar de los lenguajes C/C++ es considerada “poco segura” por Visual Studio (en realidad, esto no debería sorprendernos), y nos recomienda utilizar una función propia, que es una modificación de la original, pero que se supone, será mejor opción por motivos de seguridad.

Bajo este escenario, tenemos dos opciones: cambiamos todas nuestras referencias de scanf por scanf_s o utilizamos la instrucción _CRT_SECURE_NO_DEPRECATE en la llamada de precompilación del compilador.

Asumiendo que no tenemos un encabezado precompilado (ya que creamos un proyecto vacío), no tendremos el archivo stadfx.h. En caso que si lo tuviéramos, solo debemos agregar esta línea en dicho archivo:

#define _CRT_SECURE_NO_DEPRECATE

Pero como no tenemos este fichero, debemos hacer clic en el proyecto que tiene al archivo de código fuente a compilar en el explorador de soluciones e ir a la opción Propiedades.

En la ventana que se abrirá, vamos a Propiedades de Configuración -> C/C++ -> Preprocesador y en el panel de la derecha editamos las Definiciones de Preprocesador.

En la nueva ventana que se abrirá, simplemente agregamos la instrucción a la lista de instrucciones existentes.

Presionamos Aceptar y listo, al compilar nuevamente el proyecto, este no nos mostrara esos incomodos Warnings.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *