4

我正在 Linux 中使用 ncurses 构建游戏。

我可以将代码“复制/粘贴”到 Microsoft Visual Studio(为 PDCurses 正确设置)并且一切都会正常运行吗?

谢谢!

4

1 回答 1

4

语法相同,但问题不涉及语法

它们“在很大程度上兼容”,但每个都具有另一个没有的功能。副手(没有人做过完整的比较):

  • PDCurses 没有低级(terminfotermcap)接口
  • PDCurses 对 alt/control 键有明确的定义,例如,
    #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)的程序可能不会不费吹灰之力就无法移植。

于 2017-08-08T08:51:56.210 回答