ncurses — удобный и мощный фреймворк для создания графики в текстовом режиме. Но, к сожалению, он предназначен для UNIX-подобных ОС. Чтобы исправить это досадное упущение была создана PDcurses — аналог ncurses под windows.
Рассматривать использование PDcurses будем на примере Dev-Cpp. Если у вас ещё нет этой IDE, то бежим сюда, скачиваем, устанавливаем.
Получение PDcurses
PDcurses в формате .zip можно скачать тут.
Компиляция PDcurses
PDcurses распространяется в форме исходного кода. То есть перед использованием библиотеки её нужно скомпилировать. Чтобы это сделать нужен компилятор MinGW (который, как и PDcurses, является аналогом компилятора UNIX-систем, gcc).
Первым делом распаковываем архив, к примеру в папку, куда вы установили Dev-Cpp, в моём случае это C:\Dev-Cpp\. Лучше не прямо в эту папку, а, например, в папку ...\Dev-Cpp\curses\, так будет удобнее.

Для компиляции можно воспользоваться компилятором, который идёт вместе с Dev-Cpp, но у меня он неправильно компилировал эту библиотеку (не спрашивайте, не знаю почему). Поэтому я воспользовался сторонним MinGW-компилятором, скачанным из интернета (найдёте сами, если понадобится, не маленькие уже :)
Заходим в командную строку и набираем:
path = ...\MinGW\bin
Эта команда добавит в path путь к папке bin вашего компилятора.
Теперь идём в папку, куда вы распаковали архив с исходниками библиотеки и переходим в папку win32. В этой папке находится makefile, который создан для упрощения сборки, его имя mingwin32.mak. Его нужно передать программе mingw32-make, чтобы она скомпилировала библиотеку. Делается это так:
mingw32-make -f mingwin32.mak

После выполнения этой команды начнётся компиляция PDcurses, нужно немного подождать. После окончания компиляции в папке появятся два файла — pdcurses.a и panel.a, это статические библиотеки, предназначенные для компоновщика, они то нам и нужны.
Теперь мы должны перенести эти два файла в папку со статическими библиотеками вашего компилятора. Для Dev-Cpp это папка ...\DevCpp\MinGW64\lib\.
Так же в папке, в которую вы распаковали PDcurses есть заголовочный файл curses.h. Его нужно перенести в папку с заголовочными файлами вашего компилятора. Для Dev-Cpp это папка ...\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include. Теперь PDcurses готова к использованию.
Тестирование PDcurses
Для проверки напишем программу, выводящую на экран «Hello, World!», начиная с координаты (5;5)
Для это создадим в Dev-Cpp проект Console Application (консольное приложение) и назовём его, к примеру, «curses».

Создадим файл main.cpp (можно называть как угодно) и напишем в нём:
//Вместо ncurses.h тут curses.h
#include <curses.h>
int main()
{
initscr(); //Инициализация curses
//mvprintw прежде чем вывести строку, переведёт координаты курсора в заданную позицию
mvprintw( 5, 5, "Hello, World!" );
getch(); //Ожидаем нажатия клавиши
endwin(); //Выход из curses
return 0;
}
Теперь нужно добавить библиотеку pdcurses.a. Для этого перейдём в Проект->Параметры проекта->Параметры->Добавить библиотеку. Выберем файл pdcurses.a из папки ...\DevCpp\MinGW64\lib.

Всё. Теперь компилируем и запускаем

Комментарии к статье: 7
Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.
Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.