Rails 3.1: Engine против монтируемого приложения

conio, не являющийся частью стандартной библиотеки, вы не можете ожидать, что он будет доступен для кросс-платформенной или даже между компиляторами на той же платформе.

Будучи нестандартным, имя conio было используемый Borland и Microsoft для библиотек с различными API-интерфейсами - Microsoft намного меньше. Поэтому по этой причине вы можете избежать его для переносимости.

Не исключено, что conio не работает в Windows, Cygwin - это уровень API POSIX и цепочка инструментов для создания и запуска кода POSIX в Windows. Доступные библиотеки не зависят от тех, которые предоставляются в Visual Studio.

Существует ряд решений, включая:

  • Использование альтернативной библиотеки ввода-вывода для консоли, например ncurses.
  • Используйте реализацию исходного кода conio для Linux, такую ​​как this (который использует ncurses и реализует API Borland).

Второй решение, возможно, полезно, если у вас есть много устаревшего кода, использующего conio, но переполняется, если вы просто хотите, чтобы окна консоли не закрывались. Для этого вы можете просто использовать getchar() в любом случае и принять, что вам придется нажимать клавишу ввода, а не любую клавишу.

Если вы используете Cygwin только для того, чтобы использовать GCC в Windows, вы можете лучше использовать MinGW / GCC вместо этого. Для этого используется среда выполнения Microsoft C, а не GNU, и API Win32, а не POSIX.

119
задан Jeremy Raines 25 May 2011 в 04:11
поделиться