我希望使用Rust中名为“pancurses”的curses库开发一个跨平台CUI,但我在Windows中遇到了一个奇怪的问题。出于某种原因,不是在当前终端仿真器中运行CUI(即cmd)时,某个新的终端仿真程序正在打开并运行CUI,而stdout将定向到当前终端。这与我在python中的windows-curses库中看到的不同,例如,所以我怀疑这是pancurses,pdcurses或rust编译器中的某种配置选项,但我无法找到任何相关的文档。任何帮助都是感激的。
编辑以包括最小可重现示例(使用pancurses 0.17):
extern crate pancurses;
use pancurses::{initscr, noecho};
fn main() {
let window = initscr();
window.refresh();
window.keypad(true);
noecho();
window.getch();
}
字符串
这将生成一个类似于下面的终端:x1c 0d1x的数据
1条答案
按热度按时间qoefvg9y1#
pancurses构建于Linux上的ncurses-rs和Windows上的pdcurses-sys之上。“
正如pdcurses-sys和pancurses的自述文件中所述:
PDCurs(Windows)详细信息
pdcurses-sys支持两种类型的PDCurses,即win 32a和win32。win 32a是GDI模式,而win32在Windows控制台中运行。win 32a对颜色和文本效果有更好的支持。
要为pancurses启用win32功能,可以通过使用以下命令在Cargo.toml文件中配置一个功能:
字符串
或者将其添加到您的Cargo中。toml:
型