Emulación
de <<conio>> para Dev-C++
Introducción
Aunque se trate de una librería no estándar, conio se ha
convertido para muchos programadores educados o acostumbrados a compiladores de
Borland® en una herramienta imprescindible para crear programas de consola.
Adicionalmente, cuando se crean aplicaciones de consola
usando compiladores para Windows, como Dev-C++, a menudo necesitamos compilar
programas escritos originalmente para compiladores Borland®. O sencillamente,
queremos dotar a nuestros programas de consola de una apariencia más amigable y
agradable.
Es cierto que Dev-C++ incluye una emulación de conio, pero a
nuestro juicio no es lo bastante fiel en cuanto a comportamiento a la original
de Borland®. Sobre todo en funciones de ventanas, lecturas sin eco en pantalla,
y en funciones como "kbhit", que o bien no se emulan, o se hace de
forma incompleta.
Por supuesto, no todas las funciones y macros se han
emulado, hay algunas con las que no es posible hacerlo, concretamente las que
relacionadas con entrada y salida de puertos: "inp",
"inport", "inportb", "inpw", "outp",
"outport", "outportb" y "outpw"; ya que estas
macros colisionan con el control del hardware de Windows.
Al contrario que sucede con los compiladores de Borland®, en
el que la librería está incluída en el compilador, cuando se trabaja con otros
compiladores es necesario incluir el código objeto en la fase de enlazado o
bien el fichero fuente conio.c como parte del proyecto. También se puede crear
una librería estática (ver creación de librerías estáticas), que es lo que
haremos en este artículo.
Instalación y configuración de la librería conio.h para
Dev-Cpp de Windows
Si tienes instalado Dev-cpp sobre Windows debes seguir los
siguientes pasos:
Descarga la librería conio de la siguiente dirección y
grábala en cualquier directorio de tu PC, puedes descargarla de:
ftp://ciclope.unicauca.edu.co/conio1_3.zip o también de: http://c.conclase.net/devcpp.php?art=conio
Descomprime este directorio y encontrarás los siguientes
archivos:
conio.h,
conio.c
libconio.a:
text.c:
conio-lib.dev:
conio-eje-a.dev:
conio-eje-c.dev:
6-Console_conio.template,
ConsoleConio_c.txt
ConsoleConio_cpp.txt:
Ahora, debes copiar el archivo "libconio.a" al
directorio "C:\Dev-Cpp\lib", suponiendo que tengas instalado Dev-C++
en el disco "C:". Después, habría que copiar los archivos
"conio.h" y, opcionalmente, "conio.c" en el directorio
"C:\Dev-Cpp\include". Si los archivos ya existen sobreescríbelos sin
miedo!
Listo ahora ya puedes hacer programas que incluyan la
librería conio.h con todas sus funciones para manejo de ventanas y colores. No
olvides que debes crear un proyecto y adicionar el archivo conio.c al proyecto
para que se pueda compilar el programa.
EJEMPLOS
EJEMPLO 1. Si gustas puedes correr el proyecto
conio-eje-c.dev, que es un ejemplo de cómo funciona la librería conio.h y
utiliza muchas de las funciones conocidas como window(), gotox(),
textbackcolor(), etc. Una referencia completa a las funciones de la conio la
puedes encontrar en la dirección: http://c.conclase.net/Borland/libreria.php?lib=conio
EJEMPLO 2. A continuación se muestra otro ejemplo muy
sencillo del uso de la libreria conio.
/*
*****************************************************
Ejemplo del uso de conio
--------------------------------------------
Programa que calcula el duplo de un número
Agosto 11 de 2005
--------------------------------------------
Autor: W. Libardo Pantoja Yépez
******************************************************
*/
#include <conio.h>
#include <string.h>
void dibujarCuadro(int,int,int,int);
void dibujarCuadro(int x1,int y1,int x2,int y2)
{
int i;
for
(i=x1+1;i<x2;i++)
{
gotoxy(i,y1);
cputs("-") ;//linea horizontal superior
gotoxy(i,y2);
cprintf("-") ;//linea horizontal inferior
}
for
(i=y1+1;i<y2;i++)
{
gotoxy(x1,i);
cprintf("|") ;//linea vertical izquierda
gotoxy(x2,i);
cprintf("|") ;//linea vertical derecha
}
}
int main(int argc, char *argv[])
{
int n;
clrscr();//limpia
TODA LA pantalla
//crea una ventana
COMPLETA de fondo azul claro
window(1,1,80,25);
textbackground(LIGHTBLUE);//fondo de la pantalla AZUL CLARO
clrscr();
//Ventana de fondo
o sombra NEGRA
window(4,4,79,24);//crea una ventana en estar cordenadas
textbackground(BLACK);
clrscr();
//ventana
principal donde se solicitan datos
window(2,2,77,22);//crea una ventana en estar cordenadas
textbackground(GREEN);//fondo de la pantalla verde
textcolor(YELLOW);//color de la letra amarillo
clrscr();
dibujarCuadro(1,1,75,21);//Cuadro grande
dibujarCuadro(3,3,73,5);//Cuadro titulo
gotoxy(16,4);
textcolor(WHITE);//establece el color de fondo en blanco
cprintf("Programa Que Calcula El Duplo De Un Numero");
gotoxy(3,7);cprintf("Digite un numero entero:
");scanf("%d",&n);
gotoxy(3,9);cprintf("El duplo de %d es %d",n,2*n);
gotoxy(3,18);cprintf("Presione
cualquier tecla para terminar...");
getch();
return 0;
}
No hay comentarios:
Publicar un comentario