我正在 Linux 中使用 ncurses 构建游戏。
我可以将代码“复制/粘贴”到 Microsoft Visual Studio(为 PDCurses 正确设置)并且一切都会正常运行吗?
谢谢!
语法相同,但问题不涉及语法
它们“在很大程度上兼容”,但每个都具有另一个没有的功能。副手(没有人做过完整的比较):
#define CTL_LEFT 0x1bb /* 控制左箭头 */ #define CTL_RIGHT 0x1bc #define CTL_PGUP 0x1bd #define CTL_PGDN 0x1be #define CTL_HOME 0x1bf #define CTL_END 0x1c0
使用 ncurses,这些将是用户定义的功能。终端描述将具有控制光标键的功能,例如 ** kDN5
(控制向下箭头),应用程序在运行时使用tigetstr
(获取值)找到这些,并key_defined
找到 ncurses 使用的编码。这些名称基于xterm,但可能包括其他终端(除了 rxvt 之外的大多数终端,您会找到副本 xterm)。听起来很麻烦,但是 ncurses/PDCurses 在扩展 X/Open Curses 方面都采取了自己的方式。
resize_term
是不同的(在 ncurses 中它响应窗口大小的变化,而 PDCurses 允许改变窗口大小)。
编写为使用 Unicode 值(或假设字符串是 UTF-8)的程序可能不会不费吹灰之力就无法移植。