es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La conversión de una constante literal de cadena pierde el calificador constante.

error C2664: ‘void add_log(char *,…)’ No se puede convertir el argumento 1 de ‘const char [33]’ a ‘char *'

mensaje: La conversión de una cadena literal pierde el calificador const (ver /Zc:strictStrings)

Reinicié mi computadora y ahora mi proyecto dejó de poder construirse. He buscado en todos lados problemas similares, pero ya no puedo construir este proyecto con ningún cambio realizado en el proyecto.

Usando -> Estándar ISO C++17 (/std:c++17)

Conjunto de caracteres -> Usar conjunto de caracteres de varios bytes

No entiendo qué sucedió en cuestión de minutos para que mi proyecto se rompiera por completo cuando estaba compilando varias veces esta mañana.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “error C2664: ‘void add_log(char *,…)’ no puede convertir el argumento 1 de ‘const char [33]’ a ‘char *'” indica que hay un problema con la conversión de tipos. Específicamente, la función espera un puntero de tipo char no constante como su primer argumento, pero está recibiendo un puntero de tipo const char en su lugar. El mensaje “La conversión de una literal de cadena pierde calificación constante (ver /Zc:strictStrings)” sugiere que el problema puede estar relacionado con un cambio en la configuración del compilador, específicamente con la opción “/Zc:strictStrings” habilitada.

    El hecho de que el proyecto se compilara bien antes pero de repente dejó de hacerlo sugiere que algo podría haber cambiado en el código o en el entorno desde la última vez que se construyó el proyecto. Podría ser un cambio en la versión o configuración del compilador, una actualización del sistema operativo o cambios en la base de código.

    Algunas posibles soluciones a este error podrían ser castear explícitamente el argumento a un puntero de tipo char no constante, modificar la firma de la función para aceptar un puntero de tipo const char o actualizar el código para usar una cadena en lugar de un puntero de tipo char. También vale la pena revisar el código y asegurarse de que se estén utilizando los tipos correctos en todo momento.

Comments are closed.