PDCureses库的安装和使用

闲来无事想倒腾倒腾一些简单的C++库,在某个编程学习网站上看到有用PDCurses写一个2048的项目,但环境配置的教程已经过时好久,折腾了几个小时终于弄好- -。写个文档来方便一下像我这样的弱渣们。

Windows下PDCurses库的安装和使用

下载

这个库可以从官网或者github下载得到,笔者也已经fork到自己的github里

安装

下载后解压是一个叫做PDCurses-master的文件夹,在Windows下我们要使用的是PDCurses-master\wincon文件夹里面的东西.

用Git-Bash或者控制台cmd进入PDCurses-master\wincon文件夹,接下来用编译器对这个文件夹里的文件进行编译

编译器和makefile文件对应如下:

Makefile      - GCC (MinGW or Cygnus)
Makefile.bcc  - Borland C++
Makefile.vc   - Microsoft Visual C++
Makefile.wcc  - Watcom

make指令和编译器对应如下:

mingw32-make    - MinGW
wmake           - Watcom
nmake           - MSVC

编译可选参数:

WIDE=Y  支持Unicode
UTF8=Y  使用UTF-8(必须搭配WIDE=Y使用)
DLL=Y   生成DLL(源文件需要加上#define PDC_DLL_BUILD)

根据上面的对应关系输入make命令,例如笔者使用MinGW并且支持Unicode则输入

mingw32-make -f Makefile WIDE=Y

注意:如果编译失败且错误信息与"PCONSOLE_SCREEN_BUFFER_INFOEX"有关时,加上"INFOEX=N"编译参数即可

使用

编译完成之后在wincon文件夹会得到一系列o文件,找到唯一的a文件pdcurses.a,再在PDCurses-master找到curses.h文件,将这两个文件放到需要使用的项目的根目录下。

头文件的使用:

#include"curses.h"

a文件的使用:

以codeblocks为例,在设置-编译器设置-链接器设置,添加链接库,把pdcurses.a文件添加进去即可

测试

这里给出一段测试库的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cstdio>
#include "curses.h"
using namespace std;
void initialize() {
// ncurses初始化
initscr();
// 按键不需要输入回车直接交互
cbreak();
// 按键不显示
noecho();
// 隐藏光标
curs_set(0);
// 随机数
srand(time(NULL));
}
void shutdown() {
// ncurses清理
endwin();
}
int main() {
initialize();
char ch = 'n';
do {
move(5, 5);
addch(ch);
mvprintw(2, 2, "Hello world!");
ch = getch();
} while (ch != 'Q' && ch != 'q');
shutdown();
return 0;
}