Russian Qt Forum
Май 18, 2024, 14:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: посоветуйте как работать с процессом  (Прочитано 4632 раз)
alex
Гость
« : Декабрь 12, 2012, 16:54 »

Значит имеется некоторая программа А, которую я запускаю как процесс в другой программе на кутэ B.
Запускаю вот так :
Код:
QProcess prc;
prc.start("Aprogram");
....
и тут меня посещает вопрос, а как обрабатывать данные из входящего потока std::cout .
Ведь это очень неудобно, потому что данные в Aprogram устроены так :
Код:
struct point{
int x;
int y;
}

vector<point> points;
Вообщем этот вектор мне надо передавать из Aprogram в программу на Qt, используя процессы и потоки, подскажите как это реализовать. Или предложите альтернативный вариант. В замешательстве
Записан
mutineer
Гость
« Ответ #1 : Декабрь 12, 2012, 16:59 »

Вот тебе альтернативный вариант - передавать через сокет
Записан
alex
Гость
« Ответ #2 : Декабрь 12, 2012, 19:16 »

Я в них не разбираюсь, а времени до сдачи осталось не так много
Записан
Bepec
Гость
« Ответ #3 : Декабрь 12, 2012, 19:35 »

Что мешает гнать хрень поток QDataStream в стандартный вывод?
Записан
alex
Гость
« Ответ #4 : Декабрь 12, 2012, 19:56 »

Что мешает гнать хрень поток QDataStream в стандартный вывод?
спасибо! не знал о нем, пойду гнать
Только остается одна проблемка - процесс который я запускаю, который должен мне прислать vector<point> пишется в MSVS .
« Последнее редактирование: Декабрь 12, 2012, 20:46 от alex » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Декабрь 13, 2012, 09:26 »

Только остается одна проблемка - процесс который я запускаю, который должен мне прислать vector<point> пишется в MSVS .
В смысле это не консольное приложение или в чем проблема?
Записан
Bepec
Гость
« Ответ #6 : Декабрь 13, 2012, 09:51 »

Ёмоё. Реализуйте свой мини протокол. О том, что исходные данные поставляются из другой программы надо было писать в 1 посте.

Сделайте как в примерах Qt. Сначала идёт размер передаваемого вектора. Далее поочередно идут байты. Проверяете - если несоответствие то аллес капут. Иначе - вери гуд и гоните во что угодно.

PS и вообще у вас прямое почти что соединение. Что мешает тупо принимать данные в виде вектора vector<int> simplePointVector?
И уже более искушенная задача - тудо гнать вектор из основной программы в виде char*. А его конец и начало определять по разделителям.
Записан
alex
Гость
« Ответ #7 : Декабрь 14, 2012, 21:26 »

Ёмоё. Реализуйте свой мини протокол. О том, что исходные данные поставляются из другой программы надо было писать в 1 посте.

Сделайте как в примерах Qt. Сначала идёт размер передаваемого вектора. Далее поочередно идут байты. Проверяете - если несоответствие то аллес капут. Иначе - вери гуд и гоните во что угодно.

PS и вообще у вас прямое почти что соединение. Что мешает тупо принимать данные в виде вектора vector<int> simplePointVector?
И уже более искушенная задача - тудо гнать вектор из основной программы в виде char*. А его конец и начало определять по разделителям.

не додумался - слишком простая идея) спасибо , мастер
Записан
Bepec
Гость
« Ответ #8 : Декабрь 14, 2012, 22:59 »

Всегда пожалуйста, ваш КО. ©
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 19.