Win32 в машинных кодах


Консольное приложение


Существует разновидность приложений Windows, которые называются консольными. По своим "внешним" проявлениям они напоминают приложения DOS, запущенные в Windows. Тем не менее, это настоящие Win32-приложения, которые под DOS работать не будут; для них также доступен Win32 API, а кроме того, они могут использовать консоль - окно, предоставляемое системой, которое работает в текстовом режиме и в которое можно вводить данные с клавиатуры.

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

Еще одной особенностью стандартных ввода и вывода является возможность их перенаправления в файл. Этим мы уже пользовались при создании наших приложений, используя в командной строке знаки '&lt' для перенаправления ввода и '&gt' для перенаправления вывода. Debug, будучи приложением DOS, использует для приема команд стандартный ввод, а для отображения данных - стандартный вывод. Когда мы писали: 'debug &lt code.txt', содержащиеся в файле code.txt данные поступали в debug так, как будто их набирают на клавиатуре. При команде же 'debug &gt result.lst' вся информация, которая выводилась бы на экран, попадала в файл 'result.lst'.

Из приложений, подобных debug, т.е. использующих для ввода данных стандартный ввод, а для вывода - соответственно стандартный вывод, можно строить даже своеобразные "конвейеры". Для этого данные из стандартного вывода одного приложения подают на стандартный ввод другого посредством специального знака командной строки '|' (вертикальной черты). В команде

приложение1 | приложение 2 | приложение3

данные проходят последовательную обработку этими тремя приложениями. Например, приложение1 могло бы составлять список из данных источника, приложение2 - сортировать его, а приложение3 - форматировать нужным образом. Таким образом, у консольных приложений есть свои преимущества; их удобно использовать в качестве "строительных блоков" для автоматизации многих рутинных задач, не требующих интерактивного взаимодействия с пользователем.




Начало  Назад  Вперед



Книжный магазин