PDCurses 和 ncurses 是否具有相同的语法?

Neo*_*eit 4 syntax ncurses pdcurses

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

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

谢谢!

Tho*_*key 6

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

它们“很大程度上兼容”,但各自都具有对方所没有的功能。顺便说一下(没有人做过完整的比较):

  • PDCurses 没有低级(terminfotermcap)接口
  • PDCurses 对 alt/control 键有明确的定义,例如,
    #define CTL_LEFT 0x1bb /* Control-左箭头 */
    #定义CTL_RIGHT 0x1bc
    #定义CTL_PGUP 0x1bd
    #定义CTL_PGDN 0x1be
    #定义CTL_HOME 0x1bf
    #定义CTL_END 0x1c0

对于 ncurses,这些将是用户定义的功能。终端描述将具有控制光标键的功能,例如 ** kDN5(控制向下箭头),应用程序在运行时使用tigetstr(获取值)查找这些键并key_defined查找 ncurses 使用的编码。这些名称基于xterm,但可能包括其他终端(除了 rxvt 之外的大多数终端,您会发现复制 xterm )。听起来很麻烦,但是 ncurses/PDCurses 都在扩展 X/Open Curses 方面走了自己的路。

  • resize_term是不同的(在 ncurses 中它响应窗口大小的变化,而 PDCurses 允许更改窗口大小)。

  • 为使用 Unicode 值(或假设字符串为 UTF-8)而编写的程序可能无法在不付出努力的情况下进行移植。