| |||
¿¿Porqué me da este error?? Tengo que hacer un reloj digital, pero cuando lo compilo me da el siguiente error "call to undefined funtion 'delay'", que es lo que me falta por poner?? #include <conio.h> #include <stdio.h> #include <dos.h> main() { int horas,minutos,segundos; do { for (horas=1;horas<=23;horas++) { gotoxy(36,15); printf("%02d:",horas); for(minutos=0;minutos<=59;minutos++) { gotoxy(39,15); printf("%02d:",minutos); for(segundos=0;segundos<=59;segundos++) { gotoxy(42,15); printf("%02d:",segundos); delay(1000); } } } horas=0; // obligo a un bucle infinito } while(horas<25); getch(); } |
| |||
Eso pasa porque el compilador en nignun lugar encuentra el prototipo o la definición de la función "delay" Esta función está definida en alguna librería, dependiendo de tu compilador... No estoy seguro en cuál, me parece que generalmente está en conio.h, pero depende de cuál sea tu compilador. ¿Qué compilador estás usando? |
| |||
Pues la verdad que no se que deciros, me imagino que es de 32,es el programa que utilizamos en clase para programar y siempre lo hes hecho con el Borland c++ 5.0.2 y no h e tenido casi ningun problema exceptuando este. Que me recomiendas hacer? Ah prcierto, gracias por tu ayuda |
| ||||
¿El Borland Builder 5, verdad? Si es asi te recomiendo olvidarte de ese codigo de 16 bits o usar un compilador que acepte esas funciones no standard pensadas para interfaces de consola.
__________________ ¡Peron cumple, Evita dignifica! VIVA PERON CARAJO |
| ||||
Cita: Igual no tiene mucho sentido que una funcion para pausar el programa este en graphics.h; por otro lado ese mensaje nos dice claramente que tenes un compilador de 32 bits. Podes sustituir el delay por la funcion Sleep de la API de Windows.
Iniciado por Amagoia686 Nada, he incluido la libreria que me dices "graphics.h" y me da el siguiente error:Error directive:BGI graphics not supported under windows
__________________ ¡Peron cumple, Evita dignifica! VIVA PERON CARAJO |
| |||
Ya me imagine que no tendria nada que ver pero llega un momento que pruebas con todo...en definitiva, he utilizado el sleep y en efecto, funciona perfectamente. Esta funcion no la conocia aun, pero veo que da el mismo resultado asi que es lo que voy a utilizar.Lo unico que me extraña, es que otras veces he hecho algun pequeño programilla con delay y no me ha dado ningun problema, utilizando las mismas librerias y con el borland. Pero gracias por la gran ayuda prestada.Saludos |
| |||
Cita: Si te obligan a las antiguas "funciones de MS-DOS" exclusivamente, puedes usar Dev-Cpp. Tiene un soporte para aquellas antiguas aplicaciones. Usa el compilador Mingw32 (portado del original GNU C Compiler, gcc), es de 32 bits y perfectamente estándar. Al menos es mejor que un Borland.
Iniciado por Amagoia686 Ya me imagine que no tendria nada que ver pero llega un momento que pruebas con todo...en definitiva, he utilizado el sleep y en efecto, funciona perfectamente. Esta funcion no la conocia aun, pero veo que da el mismo resultado asi que es lo que voy a utilizar.Lo unico que me extraña, es que otras veces he hecho algun pequeño programilla con delay y no me ha dado ningun problema, utilizando las mismas librerias y con el borland. Pero gracias por la gran ayuda prestada.Saludos |
| ||||
mmmmm, puedo darte una sugerencia, el reloj que has programado acarrea un error en el tiempo. Este delay(1000), no te asegura que tu aplicacion se suspenda exactamente por un segundo, aveces ese tiempo es mayor, pero nunca menor, por lo que este error se te va sumando en cada suma de 1 segundo. Para mejorarlo tendrias que imprimir la hora que marque el reloj del bios, el cual no se atraza. No me acuerdo la funcion que se usaba, pero estaba en la biblioteca bios.h, consulta la ayuda de esa biblioteca y encontraras la funcion. Si esta precision no te importa, entonces haz caso omiso de esta critica, ya que el error que s egenera en tu programa es practicamente nulo, y tendrias que dejarlo andando varios miles de segundos para que se atrace un segundo. Bye
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| ||||
Cita: es verdad, lo que pasa es que siempre trato de hacer las cosas lo mas preciso posible. JAJA, es un defecto que tengo
Iniciado por Willie dificil llegar a ser "hard real time"
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| |||
Cita: Exacto, debes pedir la hora llamando al sistema usando el método que este provea para ello.
Iniciado por Eternal Idol Si tu programa funciona bajo NT olvidate de la BIOS. |
| ||||
Cita: mmm, tengo una curiosidad:
Iniciado por Eternal Idol Si tu programa funciona bajo NT olvidate de la BIOS. en que afecta que el sistema operativo sea NT?
__________________ http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux |
| ||||
Cita: Es un Sistema Operativo de 32 bits (modo protegido) donde cualquier acceso de bajo nivel esta prohibido a los ejecutables de modo usuario.
Iniciado por TolaWare mmm, tengo una curiosidad: en que afecta que el sistema operativo sea NT?
__________________ ¡Peron cumple, Evita dignifica! VIVA PERON CARAJO |
| |||
Cita: Un sistema decente está en modo protegido, y en este modo la BIOS no se usa para nada.
Iniciado por TolaWare mmm, tengo una curiosidad: en que afecta que el sistema operativo sea NT? Debes llamar al sistema, y cada sistema provee un mecanismo, como por ejemplo: Llamada a una serie de funciones (API), añadidos a la librería C, interfaz POSIX, interrupciones... Lo que sea |