请问c++如何同时运行2个exe文件并不断向其中进行标准输入

麻烦举出一个详细的例子,如果很好会有大量加分,谢谢!急!
是当前c++的exe运行另外2个exe

最简单的,调用 DOS 命令,分别开2个窗,同时工作:
#include <stdio.h>
int main()
{
system( "start \"a1\" a1.exe"); // 窗名a1, 运行 a1.exe
system( "start \"a2\" a2.exe"); // 窗名a2, 运行 a2.exe
return 0;
}
==================
把两个程序做成2 个线程,或一个做主函数,一个做函数,共享标准输入输出资源
c++ 程序:
#include <iostream>
#include <windows.h>
using namespace std;

HANDLE hMutex; //公用资源句柄
int x1=0,x2=0;

DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"intput x1:"<<endl; // 第1个程序嵌入这里
cin >> x1;
cout << "x1="<<x1<< endl;
Sleep(1000);
ReleaseMutex(hMutex);
}
}
int main()
{
hMutex = CreateMutex(NULL, FALSE, "screen");
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
CloseHandle(hThread);
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"input x2:"<<endl; //第2个程序嵌入这里
cin >> x2;
cout << "x2="<<x2<<endl;
Sleep(2000);
ReleaseMutex(hMutex);
}
return 0;
}
----
模拟2个线程,交替通过申请获得 标准输入输出设备 使用 权。追问

请问一下,第二个方法中,程序嵌入能否直接加入未知程序(就是不重新复制粘贴源代码之类)?(输入输出格式已经统一的情况下)求教方法。谢谢!

追答

要改写原来程序内容,把它作为 本程序的一部分。有冲突的变量名字要换掉。
例如,程序1,写成函数 A,程序2,写成函数 B,
在嵌入处 1 调用 funA(...);
在嵌入处 2 调用 funB (...);
当然,funA,funB 里面可以有 各自 自己的原来的 其它函数的 调用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-11
C++是运行在DOS系统下的,DOS系统是单任务操作系统,CPU不能被分享,所以你的设想有点“过分”。当然用VC,VS编写的代码是运行在WINDOWS下的,WINDOWS系统是多任务系统,同时可以有多个任务运行,这样来说,你的代码要求就容易解决了,不过这要涉及到多线程操作。追问

求教多线程操作的实现代码,很基础的就可以了,就只要对exe进行 运行、读入和输出这几点就行了。

追答

在你掌握VC编程前,建议你暂时放弃这样的想法,因为VC编程涉及新内容很多,且不是用几句核心代码就能解决的,抱歉,我无能为力。

追问

好吧,还是谢谢你

追答

不要客气。

本回答被网友采纳
第2个回答  2014-02-11
其实你是不是想同时运行两个应用程序A,B。
A,B。都能接收到标准输入的数据。

其实这很简单写两个exe,都循环调用getchar()之类的接收函数,不退出。
这样不就行了么
第3个回答  2014-02-11
这个是设计进程间的通讯还有多线程的运用,本人是ARM嵌入式开发专业的 我举个例子吧 你要的效果有点像QQ 我打开QQ了 我既能远程操控电脑也能同时跟别人聊天 而且我点一下QQ游戏自动弹开游戏网页
其实只要你设定好广播 然后发送一个sock(在这之前要做一个套接字监控,当然这是比较复杂点点的)
另外如果你想做的比较简单的 直接用system()这个函数,连用两个就能达到你的要求,只是这样做事毫无意义的,本人推荐你用上面的方法追问

其实我的意思是自己这个进程运行另外2个exe,向这2个交替进行输入输出。请问有没有较基础的实现代码,不用太多,就运行、输入、输出,这3样功能就行。剩下的我自行参悟吧。谢谢!

追答

要不你去CSDN找一下 那里很多世外高人 还有很多的精品代码 实在没发给你找了

相似回答