Показать полную графическую версию : Написание своей консоли (командной строки)
вот собственно такой вопрос - я просто не знаю откуда начать копать...... так что хелп
задача: - нужно написать виндовое приложение и чтобы в этом приложении была командная строка, чтобы исполнять функции проги путём исполнения своих команд
что непонятно: - непонятно что использовать в принципе для начала работы над этой штукой
я не имею ввиду всякого рода синтаксические и лексические анализаторы введнного текста, с этим всё ясно, но вот сам как бы сказать движок что ли этой самой виндовой консоли.....
спрашивал у гугля, у яндекса - ничего подходящего что то не находится...
F1 pls
Добавлено:
да, извинте, забыл добавить - пишу на MSVC++
hasherfrog
18-06-2004, 09:19
Guest
Я Вам сразу предложу "взрослый" вариант. Идёте на сайт DosBox (http://dosbox.sourceforge.net/wiki/index.php), скачиваете исходники (можете сразу взять их здесь (http://pcnwstage.phys.rug.nl/dosboxcvs.tgz)), внимательно изучаете "движок консоли", удаляете лишнее, дописываете своё. Опираясь на готовую модель, пусть и чужую, Вы быстрее напишите качественный продукт.
а стандартная консоль не подходит? (которая AllocConsole)
Оживлю тему. Поднялся тот же вопрос.
Идёте на сайт DosBox, скачиваете исходники »
А поточнее можно?
(можете сразу взять их здесь) »
Сцыль к сожалению битая.. Не оживите?
Буду очень благодарен за помощь.
kiroHQ, а Google нам на что? :)
dosbox / download (http://www.dosbox.com/download.php?main=1)
Исходники (http://sourceforge.net/projects/dosbox/files/dosbox/0.74/dosbox-0.74.tar.gz/download)
Видно мое гугл-фу не так сильно) Спасибо за ссылки.
Проще использовать pipe каналы для эмуляции консоли.
http://www.sources.ru/cpp/using_anonymous_pipes.shtml
вот ещё вариант)
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char psBuffer[128];
FILE *pPipe;
/* Run DIR so that it writes its output to a pipe. Open this
* pipe with read text attribute so that we can read it
* like a text file.
*/
if( (pPipe = _popen( "dir *.c /on /p", "rt" )) == NULL )
exit( 1 );
/* Read pipe until end of file, or an error occurs. */
while(fgets(psBuffer, 128, pPipe))
{
printf(psBuffer);
}
/* Close pipe and print return value of pPipe. */
if (feof( pPipe))
{
printf( "\nProcess returned %d\n", _pclose( pPipe ) );
}
else
{
printf( "Error: Failed to read the pipe to the end.\n");
}
}
http://msdn.microsoft.com/en-us/library/96ayss4b.aspx
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.