Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 261

Раздел: Ассемблер
/ вопрос решён /

Здравствуйте, эксперты!
Подскажите, как в системе Windows, осуществить ввод-вывод через консоль? Понимаю, что нужно использовать WinApi, но справочники довольно толстые и найти там что-то довольно трудно, поэтому и обращаюсь к вам.

Если не затруднит, опишите поподробнее не только используемые функции, но и типы данных, которые они принимают. Также, если есть какие-либо нюансы, тоже буду рад знать.

Gooddy Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 13 сентября 2012, 18:20
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 14 сентября 2012, 05:02; участников в обсуждении: 1.
Gooddy

Gooddy (статус: 3-ий класс), 14 сентября 2012, 05:02 [#1]:

Пока ждал ответа, всё таки перерыл справочники, нашёл функции
WriteConsole и ReadConsole.

Для их использования нужно получить хенлдеры ввода и вывода в консоль с помощью GetStdHandle.

Что интересно функция ReadConsole требует заранее инициализированный буфер, я выбрался из этого так:
1. Выделил большой участок памяти.
2. Вызвал функцию ReadConsole.
3. Выделил новый участок памяти размером в необходимое количество символов + 1 для завершающего 0.
4. Переместил полученные данные в новый участок памяти.
5. Освободил первый "временный" участок.
6. Вернул указатель на строку.

Кто вызывал пусть побеспокоится и освободит память по окончанию работы.
Чисти код! Чисти код! Чисти код!

14 сентября 2012, 05:02: Статус вопроса изменён на решённый (изменил автор вопроса — Gooddy)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:27
Выполнено за 0.02 сек.