Дипломированных специалистов «Информатика и вычислительная техника»



Download 12,06 Mb.
Pdf ko'rish
bet233/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   229   230   231   232   233   234   235   236   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Программирование консольных
Windows-приложений
Язык ассемблера — язык системных программистов, исследователей принципов
работы операционных систем, программ и аппаратных средств. Здесь не всегда
нужны красивые графические оболочки, а наоборот, велика потребность в удоб-
ных средствах для работы с текстовой информацией. Операционная система
Windows обеспечивает встроенную поддержку консолей, которые, по определению,
являются интерфейсами ввода-вывода для приложений, работающих в текстовом
режиме. Понятие «консоль» существует в вычислительной технике давно. В об-
щем случае под
подразумевают текстовый терминал для управления
компьютером. Видимая часть такого терминала — клавиатура (для ввода управля-
ющих воздействий) и монитор (как средство отображения-реакции вычислитель-
ной системы). В Windows консоль представляет собой приложение, которое поз-
воляет взаимодействовать с операционной системой посредством ввода текстовых


436 Глава 16. Создание Windows-приложений на ассемблере
команд. Такой способ управления компьютером позволяет решать в основном ад-
министративные задачи. Приложение, с помощью которого поддерживается этот
режим, называется консольным. Видимая часть консольных приложений называ-
ется окном
 приложения.
Написание консольных приложений на ассемблере — задача более актуальная,
чем написание оконных. Причина простая — малыми затратами нам становятся
доступны практически все возможности Win32 API. Программист может запус-
тить одновременно нескольких консольных приложений
этом работать с мышью
и клавиатурой в стиле Windows. Далее мы рассмотрим порядок действий для запус-
ка консольного Windows-приложения и организацию обмена данными с ним.
API Win32 предоставляет два разных уровня работы с консолью — высокий
и низкий. Выбор нужного уровня зависит от того, какая степень гибкости и полно-
ты контроля требуется приложению для обеспечения своей работы с консолью.
Функции высокого уровня обеспечивают простоту процесса ввода-вывода за счет
использования стандартных дескрипторов ввода-вывода, но при этом невозможен
доступ к входному и экранным буферам консоли. Функции низкого уровня требу-
ют учета большего количества деталей и написания большего объема кода, но это
компенсируется большей гибкостью.
Консоль состоит из одного входного и нескольких экранных буферов. Входной
буфер представляет собой очередь, каждая запись которой содержит информацию
относительно отдельного входного события консоли. Экранный буфер — двухмер-
ный массив, содержащий символы, выводимые в окно консоли, и данные об их
цвете.
Очередь входного буфера содержит информацию о следующих событиях:
и нажатии и отпускании клавиш;
манипуляциях мышью — движение, нажатие и отпускание кнопок;
II изменении размера активного экранного буфера, состоянии прокрутки.
С каждой консолью связаны две кодовые таблицы — по одной для ввода и вы-
вода. Консоль использует входную кодовую таблицу для трансляции ввода с клавиа-
туры в соответствующие символьные значения. Аналогичным образом исполь-
зуется кодовая таблица вывода — для трансляции символьных значений, форми-
руемых различными функциями вывода, в символы, отображаемые в окне консоли.
Для работы с кодовыми таблицами приложение может задействовать пары функ-
ций: SetConsoleCP и GetConsoleCP — для входных кодовых таблиц и SetConsoteOutputCP
и GetConsoleOutputCP — для выходных кодовых таблиц. Идентификаторы кодовых
таблиц, доступные на данном компьютере, сохраняются в системном реестре сле-
дующим ключом:
Для поддержки консольных приложений Win32 API содержит более сорока
функций, предназначенных для интеграции в среду Windows программ, работаю-
щих в текстовом режиме. Данные функции обеспечивают поддержку отмеченных
ранее двух уровней доступа к консоли — высокого и низкого. Консольные функ-
ции ввода высокого уровня позволяют приложению извлечь данные, полученные
при вводе с клавиатуры и сохраненные во входном буфере консоли. Консольные
функции вывода высокого уровня позволяют приложению записать данные в уст-


Программирование
Windows-приложений 437
ройство стандартного вывода или в устройство ошибки с тем, чтобы отобразить
этот текст в экранном буфере консоли. Функции высокого уровня также поддер-
живают переназначение стандартных дескрипторов ввода-вывода и управление
режимами работы консоли. Консольные функции низкого уровня позволяют при-
ложениям получить детальную информацию о вводе с клавиатуры, событиях на-
жатия и отпускания кнопок мыши и о манипуляциях пользователя с окном консо-
ли. Все это обеспечивает высокую степень контроля над выводом данных на экран.
Высокоуровневый и низкоуровневый консольный ввод-вывод не являются вза-
имоисключающими, и приложение может использовать любую комбинацию этих
функций.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   229   230   231   232   233   234   235   236   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish