Título: No funciona con la versión VS 202 Publicado por: Meta en 22 Enero 2023, 14:41 pm Buenas gente:
Usando C++ nativo de la época del Visual Studio 2017 el programa funciona de maravilla. Probando ahora la versión del Visual Studio 2022, a pesar que es el mismo código, me da error por todas partes. El código es C++ nativo, nada de C++ del .net. Código C++: Código
Estoy siguiendo la guía del enlace de abajo a partir de la página 54. Ver tutorial (https://drive.google.com/file/d/0B6HKwsbbpgrLSlpSM3A5Qy1yV00/view?resourcekey=0-xH8FUQc5A-lF3seHVpguDQ). Saludos. Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 22 Enero 2023, 15:37 pm Usando C++ nativo de la época del Visual Studio 2017 el programa funciona de maravilla. Probando ahora la versión del Visual Studio 2022, a pesar que es el mismo código, me da error por todas partes. ¿Errores al compilar o al ejecutar? Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 22 Enero 2023, 15:55 pm No deja compilar, muestra estos errores.
(https://i.postimg.cc/wMNWWb1w/Captura.jpg) Viene de la librería esta. SerialClass.cpp: Código
Antes funcionaba todo. Ya no funciona ni modo 32 bits, ni 64 bits. Saludos. Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 22 Enero 2023, 18:06 pm https://learn.microsoft.com/es-es/cpp/error-messages/compiler-errors-2/compiler-error-c2665?view=msvc-170
Hay algo que no cierra cuando te dice que hay mas de un constructor definido para la clase Serial y segun el codigo hay uno solo. Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 22 Enero 2023, 19:46 pm Holaaaaaaa:
(https://i.postimg.cc/5t7w01rQ/Captura.jpg) Y la clase. (https://i.postimg.cc/HxFXwzdp/Captura2.jpg) Que deje de funcionar los programas que hacer en C++ nativo es lo que me pone de mala leche. En los .net estas cosas ocurren cuando pasan unos 10 años o más. Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 22 Enero 2023, 20:47 pm Me compila perfectamente con esta version tanto en x86 como x64, sera un problema de tu proyecto o el codigo que se compila no es el que crees.
********************************************************************** ** Visual Studio 2022 Developer Command Prompt v17.4.4 ** Copyright (c) 2022 Microsoft Corporation ********************************************************************** cl Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31937 for x86 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ] Título: Re: No funciona con la versión VS 202 Publicado por: RayR en 22 Enero 2023, 20:56 pm Dado el tipo de error, lo que deberías postear es el contenido de SerialClass.h. Es casi seguro que ahí esté el problema. O cambia el parámetro de Serial::Serial a const char*, que de cualquier forma, independientemente de que compile o no, es lo correcto si quieres aceptar cadenas literales.
Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 22 Enero 2023, 22:15 pm No me puedo creer que te funcione.
Si te refieres a esto, da más errores aún. Código
Ya que hablas del proyecto... (https://i.postimg.cc/gcNXGbMb/Captura3.jpg) El .h es este. Código
Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 22 Enero 2023, 22:21 pm No me puedo creer que te funcione. Y yo no puedo creer que te de ese error teniendo solo un constructor ... hay algo que no corresponde con lo que decis/mostras. Crea un proyecto nuevo con los mismos archivos fuente QUE PEGASTE ACA EN EL FORO (no los que tenes en el disco) y proba de nuevo (eso es lo que hice). Si te refieres a esto, da más errores aún. Si lo cambias en el .h y el .cpp no da ningun error. Ya que hablas del proyecto... Eso no muestra nada, el proyecto podria tener por ejemplo (entiendo que no es el caso y por eso no mencione lo de const) esta opcion habilitada: https://learn.microsoft.com/en-us/cpp/build/reference/zc-strictstrings-disable-string-literal-type-conversion?view=msvc-160 Hay cientos de opciones ... y una de ellas es el standard a usar ... ¿Elegiste ISO C++ 20 por casualidad? Si es asi hace lo que te dijo RayR. La proxima vez fijate en el output del compilador: Build started... 1>------ Build started: Project: arduino, Configuration: Debug Win32 ------ 1>SerialClass.cpp 1>meta.cpp 1>C:\src\arduino\meta.cpp(13,36): error C2665: 'Serial::Serial': no overloaded function could convert all the argument types 1>C:\src\arduino\SerialClass.h(41,1): message : could be 'Serial::Serial(const Serial &)' 1>C:\src\arduino\meta.cpp(13,36): message : 'Serial::Serial(const Serial &)': cannot convert argument 1 from 'const char [5]' to 'const Serial &' 1>C:\src\arduino\meta.cpp(13,37): message : Reason: cannot convert from 'const char [5]' to 'const Serial' 1>C:\src\arduino\meta.cpp(13,37): message : No constructor could take the source type, or constructor overload resolution was ambiguous 1>C:\src\arduino\SerialClass.h(24,9): message : or 'Serial::Serial(char *)' 1>C:\src\arduino\meta.cpp(13,36): message : 'Serial::Serial(char *)': cannot convert argument 1 from 'const char [5]' to 'char *' 1>C:\src\arduino\meta.cpp(13,37): message : Conversion from string literal loses const qualifier (see /Zc:strictStrings) 1>C:\src\arduino\meta.cpp(13,36): message : while trying to match the argument list '(const char [5])' Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 22 Enero 2023, 22:46 pm Uso el que me viene predeterminado.
(https://i.postimg.cc/59Yq0mrt/Captura4.jpg) Puedes seleccionar el 14, 17 y 20. Hasta ahí llegaron. No he tocado nada, me imagino que toco el que viene por defecto. En cuanto al const. Me imagino que será en la .h Código
Edito: Ya compila, por fin. Todo por no incluir el const en cpp y h. Muchísimas gracias a todos. ;-) ;-) ;-) ;-) ;-) ;-) Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 22 Enero 2023, 22:50 pm Uso el que me viene predeterminado. Hay cientos de opciones y se pueden sobreescribir por archivo fuente ... subi el arduino.vcxproj si queres continuar investigando. En cuanto al const. Me imagino que será en la .h Tambien en el cpp por supuesto. Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 22 Enero 2023, 23:19 pm No te había leído. Reedité el post de la página anterior, ya funciona.
Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 25 Enero 2023, 00:07 am Quiero añadir este código.
Código
Y me falla con este error. Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido Error C2664 'BOOL SetConsoleTitleA(LPCSTR)': el argumento 1 no puede convertirse de 'wchar_t [128]' a 'LPCSTR' Led Arduino CPP nativo 02 D:\Visual Studio 2022\Led Arduino CPP nativo 02\Led Arduino CPP nativo 02\Led Arduino CPP nativo 02.cpp 30 Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 25 Enero 2023, 00:43 am Estas llamando a la version ANSI de la funcion y pasandole una cadena ancha. Llama a SetConsoleTitleW (en lugar de SetConsoleTitleA) o pasale una cadena de caracteres de toda la vida.
Título: Re: No funciona con la versión VS 202 Publicado por: Meta en 25 Enero 2023, 07:09 am Ya funciona, te la saber toda. Muchas gracias horonable Eternal Idol. ;-)
Título: Re: No funciona con la versión VS 202 Publicado por: Eternal Idol en 25 Enero 2023, 09:55 am De nadas.
|