Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Перенаправление стандартных потоков ввода/вывода для внешней программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать приложение для управления программными проектами http://www.cyberforum.ru/cpp/thread242976.html
4. Приложение для управления программными проектами Вся информация приложения хранится в трех файлах: – работники (идентификатор работника; фамилия; специальность; опыт работы) – проекты...
C++ Библиотека для работы с изображениями Я решил попробовать написать программу для распознавания изображений, а если быть точнее - цифр (база MNIST). Почитал что пишут разные люди по этой теме и решил, что чем выбирать абы как и что - надо... http://www.cyberforum.ru/cpp/thread242859.html
какой язык программирования лучше всего подходит для новичка? C++
не подскажите какой язык программирования лучше всего подходит для новичка?
C++ get_IsSupportedEnvironment - VARIANT_FALSE
Столкнулся с проблеммой IDiscMaster2::get_IsSupportedEnvironment возвращает VARIANT_FALSE. Я читал эту статью http://msdn.microsoft.com/en-us/library/aa832660(v=vs.85).aspx насколько понял,...
C++ Прямой доступ к видео памяти http://www.cyberforum.ru/cpp/thread241566.html
Здравствуйте, подскажите как организовать прямой доступ к видео памяти на современно VGA/DVI видео адаптере. В Книги Шилдта есть указания как сделать это,но на старых видео адаптерах. Там указанно...
C++ Цвет текстового курсора Можно ли в ДОС-программе изменить цвет текстового курсора ? Все поиски дали только управление его формой (через прерывание 010H) подробнее

Показать сообщение отдельно
blv
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 4

Перенаправление стандартных потоков ввода/вывода для внешней программы - C++

15.02.2011, 19:43. Просмотров 1821. Ответов 0
Метки (Все метки)

Я вот где-то прочитал как перенаправить стандартные потоки ввода/вывода на внешнюю программу в дос. Переделал код под winapi, но не работает. Прошу вас помочь. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
#define STD_IN      0
#define STD_OUT     1
 
#define PIPESIZE    4096
 
HANDLE hPipeIn, hPipeOut;
HANDLE sInHandle, sOutHandle;
HANDLE nInHandle, nOutHandle;
 
char buf [PIPESIZE];
 
void check (char *progName, char *input, char *output)
{
    DuplicateHandle(nInHandle, &sInHandle, NULL, NULL, NULL, NULL, NULL);
    DuplicateHandle(nOutHandle, &sOutHandle, NULL, NULL, NULL, NULL, NULL);
    CreatePipe(&hPipeIn, &hPipeOut, NULL, PIPESIZE);
    DuplicateHandle(hPipeIn, nInHandle, NULL, NULL, NULL, NULL, NULL);
    DuplicateHandle(hPipeOut, nOutHandle, NULL, NULL, NULL, NULL, NULL);
    nInHandle=hPipeIn;
    nOutHandle=hPipeOut;
    strcpy(buf, "dir\nexit\n");
    unsigned long btWrited;
    WriteConsole(hPipeOut, buf, strlen(buf), &btWrited, NULL);
    WriteConsole(sOutHandle, input, strlen(input), &btWrited, NULL);
    printf("Eta stroka ne vivoditsya na zapuskayemuyu programmu!!!\n");
    system(progName);
    return;
}
 
int main (void)
{
    check("cmd.exe", "cmd\n", NULL);
    return 0;
}
Прошу помочь.
Прочитал: http://ru2.halfos.ru/rdm2/articles/dupstd.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru