代码之家  ›  专栏  ›  技术社区  ›  Mr. Boy

两个Windows应用程序可以使用命令行进行通信吗?

  •  0
  • Mr. Boy  · 技术社区  · 14 年前

    我在一个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 回复  |  直到 14 年前
        1
  •  1
  •   Necrolis    14 年前

    我会说重定向输入和输出句柄( SetStdHandle ),但使用 named pipe 更安全,更安全,而且您可以在上面使用同步功能。

    您也可以使用全局互斥体/事件或映射内存,因为它们都是全局命名的,并且易于获取/设置和读/写。