Пример взаимодействия с консольным процессом через PIPE
Рисунок 3.5.3. Пример взаимодействия с консольным процессом через PIPE.
Трансляция программы на Рисунок 3.5.3.
MASM32:
ml /c /coff /DMASM pipe.asm rc pipe.rc link /subsystem:windows pipe.obj pipe.res
TASM32:
tasm32 /ml pipe.asm brcc32 pipe.rc tlink32 -aa pipe.obj,,,,,pipe.res
Комментарий к программе на Рисунок 3.5.3.
Вообще, запуск консольного приложения - дело довольно запутанное. Мы не будем вдаваться в детали. В нашей программе этот запуск почти не отличается от запуска программы Word.exe в главе 3.2. Отмечу новое для Вас в этой программе. Обратите внимание, что управляющий элемент EditBox выступает в несколько новой ипостаси. По сути, этот элемент играет роль консоли вывода. Для этого мы указали свойство ES_MULTILINE, что дает возможность помещать в окно целый текст, который отправляется в окно при помощи сообщения EM_REPLACESEL. Для чтения информации мы используем довольно большой буфер. В принципе, как и в случае с файлами, можно читать несколькими порциями, проверяя количество считанных байт.
46 Так называемые именованные каналы реализованы в Windows NT.