从控制台应用程序发送字符串到MFC
问题描述:
通过ShellExecuteEx()从我的MFC应用程序调用控制台应用程序。 exe得到加载后,我想收到一个测试字符串窗体控制台apllication到MFC,如果我不能接收字符串,然后我将关闭MFC和控制台应用程序。从控制台应用程序发送字符串到MFC
为此,我想从控制台应用程序发送任何字符串或值到MFC。 我不知道该怎么做。
char szFile[20]={0},szDir[500]={0};
memset(szFile,0,20);
memset(szDir,0,500);
strcpy(szFile,szModelName);
strcat(szFile,".EXE");
sInfo.lpFile = szFile;
sInfo.hwnd = NULL;//this;
sInfo.lpParameters ="MODEL";
strcat(szDir,"\\Sources\\");
sInfo.lpDirectory = szDir;
sInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
sInfo.cbSize = sizeof(SHELLEXECUTEINFO);
sInfo.lpVerb = "open";
sInfo.nShow = SW_HIDE;
sInfo.hwnd = NULL;
BOOL bFlag = ShellExecuteEx(&sInfo);
控制台应用程序编码
int main(int argc , char *argv[])
{ char str[50];
strcpy(str,argv[1]);
getch();
}
答
如果你想从一个控制台应用程序将数据发送回调用它的应用程序,您需要打印到标准输出,并具有调用的应用程序读取输出。不要使用ShellExecuteEx,请使用处理文件描述符重定向所需的包装器。看看http://www.codeguru.com/Cpp/misc/misc/article.php/c321。在那里的CRedirect类会做你需要的。