Могут ли два приложения Windows взаимодействовать с помощью командной строки? - PullRequest
0 голосов
/ 22 июля 2010

Я работал над приложением Unix, где два кандидата бегали и разговаривали друг с другом с помощью командной строки, т.е. каждый из них имел цикл, похожий на (трактуйте это как псевдокод):

bool stop=false;
do
{
  stringstring cmdBuffer;
  cin >> cmdBuffer
  string ret = processCommand(cmdBuffer);
  if(ret.length()==0)
    stop=true;
  else
    cout << ret;
}
while(!stop);

Есть ли причина, по которой два приложения Windows не могут делать то же самое? Должны ли они работать в той же «командной строке» или в консольных приложениях, или понятие командной строки выходит за рамки возможности видеть командную строку передо мной?

Для справки: в моем случае одно приложение будет работать на другом, а не на двух отдельных приложениях, запускаемых независимо.

1 Ответ

1 голос
/ 22 июля 2010

Я бы сказал, перенаправить дескрипторы ввода и вывода (SetStdHandle), но использование именованного канала безопаснее и безопаснее, плюс вы можете использовать на нем функции синхронизации.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...