Войти

Показать полную графическую версию : Написание своей консоли (командной строки)


Guest
17-06-2004, 16:33
вот собственно такой вопрос - я просто не знаю откуда начать копать...... так что хелп

задача: - нужно написать виндовое приложение и чтобы в этом приложении была командная строка, чтобы исполнять функции проги путём исполнения своих команд

что непонятно: - непонятно что использовать в принципе для начала работы над этой штукой

я не имею ввиду всякого рода синтаксические и лексические анализаторы введнного текста, с этим всё ясно, но вот сам как бы сказать движок что ли этой самой виндовой консоли.....
спрашивал у гугля, у яндекса - ничего подходящего что то не находится...

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)), внимательно изучаете "движок консоли", удаляете лишнее, дописываете своё. Опираясь на готовую модель, пусть и чужую, Вы быстрее напишите качественный продукт.

pva
30-06-2004, 13:09
а стандартная консоль не подходит? (которая AllocConsole)

kiroHQ
07-11-2010, 04:42
Оживлю тему. Поднялся тот же вопрос.
Идёте на сайт DosBox, скачиваете исходники »
А поточнее можно?
(можете сразу взять их здесь) »
Сцыль к сожалению битая.. Не оживите?

Буду очень благодарен за помощь.

lxa85
07-11-2010, 05:17
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)

kiroHQ
07-11-2010, 05:22
Видно мое гугл-фу не так сильно) Спасибо за ссылки.

ganselo
07-11-2010, 12:36
Проще использовать pipe каналы для эмуляции консоли.
http://www.sources.ru/cpp/using_anonymous_pipes.shtml

ganselo
10-11-2010, 20:15
вот ещё вариант)

#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