Отправка строки из консольного приложения в MFC - PullRequest
0 голосов
/ 13 июля 2010

Я вызываю консольное приложение из моего приложения MFC через ShellExecuteEx (). После загрузки exe-файла я хочу получить одну консольную строку формы в консоли приложения для 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();        
}

1 Ответ

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

Если вы хотите отправить данные из консольного приложения обратно в приложение, которое его вызвало, вам нужно распечатать в stdout и заставить вызывающее приложение прочитать этот вывод.Не используйте ShellExecuteEx, используйте оболочку, которая имеет дело с перенаправлением дескриптора файла, которое необходимо для вас.Посмотрите на http://www.codeguru.com/Cpp/misc/misc/article.php/c321.Класс CRedirect там делает то, что вам нужно.

...