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

Does PDCurses and ncurses have the same syntax?

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

我可以 "copy/paste" 将代码导入 Microsoft Visual Studio(为 PDCurses 正确设置)并且一切都会 运行 OK 吗?

谢谢!

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

它们是 "largely compatible",但每个都有对方所没有的特征。副手(没有人做过完整的比较):

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

对于 ncurses,这些将是 user-defined capabilities. The terminal description would have capabilities for the control cursor keys such as **kDN5 (control down-arrow) and the application find these at runtime using tigetstr (to get the values) and key_defined to find the coding used by ncurses. The names are based on xterm,但可能包括其他终端(除了 rxvt 之外的大多数终端,您会发现复制 xterm)。听起来很麻烦,但是 ncurses/PDCurses 都在扩展 X/Open Curses 方面走了自己的路。

  • resize_term 不同(在 ncurses 中它响应 window 尺寸变化,而 PDCurses 允许改变 window 尺寸)。

  • 编写为使用 Unicode 值(或假定字符串为 UTF-8)的程序可能不费吹灰之力就无法移植。