PDCurses y MinGW

La versión de pdcurses que baja automáticamente Dev-Cpp no me funcionó quizás por estar algo retrasada (varios años, y por “no me funcionó” quiero decir que al llegar a la función keypad() se lanzaba una excepción), por lo que combiné ambos métodos: bajarlo desde el sitio oficial, y bajarlo desde Dev-cpp:

1. Bajar el paquete pdcurses desde dev-cpp.

Este paso es necesario para que el entorno de dev-cpp cree en forma correcta los Makefile de los proyectos que usen esta librería.

2. Bajar y descomprimir pdcurses desde su sitio oficial.

Lo que se va a realizar ahora es actualizar las versiones de librería y encabezados (.h) para que funcione en forma correcta. Así, luego de descomprimirlo hay que copiar los archivos a diferentes ubicaciones:

pdcurses.lib al directorio “/lib” de MinGW
curses.h y panels.h al directorio “/include” de MinGW
pdcurses.dll al directorio “/bin” de MinGW

Al momento de intentar la copia, Windows les dirá que ya existe el archivo, díganle que sí para que se actualicen dichos archivos a la versión más reciente.

3. Crear un proyecto de consola (y en C) para probar.

Ya creado el proyecto ir a Project->Project options->Aditional command-line options y en el apartado “Linker” darle en “Add library or object” y ahí indicarle la localización de la librería pdcurses.lib

4. Compilar y correr.

Si compila y ejecuta sin problemas el siguiente código, entonces ya se está listo para cosas más grandes.

#include <stdio.h>
 #include <stdlib.h>
#include <curses.h>
int main(int argc, char *argv[])
 {
 int ch;
initscr();
 raw();
 keypad(stdscr,1);
noecho();
printw("type anything: \n");
 ch=getch();
 if(ch==KEY_F(1)){
 printw("F1 hey pressed\n");
 }
 else{
 printw("the pressed key was: ");
 attron(A_BOLD);
 printw("%c",ch);
 attroff(A_BOLD);
 }
 refresh();
system("PAUSE");
endwin();
return 0;
 }
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s