2017-08-01 35 views
0

我试图用命令行的输入参数调用我的MFC应用程序。使用参数+ stdout + stderr从命令行调用MFC应用程序

我想应用程序打印输出到一个文件和错误到另一个文件。

所以除了输入参数之外,我通过了1>out.txt 2>err.txt

总体而言,在命令行看起来类似:

start /w app.exe arg1 arg2 arg3 1>out.txt 2>err.txt 

这似乎给了一小会儿工作,结果写入两个文件。

但是,在某个时候停止了,所以我想我做错了什么。

这里是我的代码:

头文件:

class CMyWinApp : public CWinApp 
{ 
public: 
    BOOL InitInstance(); 
}; 

源文件:

CMyWinApp myWinApp; 

BOOL CMyWinApp::InitInstance() 
{ 
    CWinApp::InitInstance();  
    int iNumOfArgs; 
    LPWSTR* pArgs = CommandLineToArgvW(GetCommandLine(),&iNumOfArgs); 
    for (int iArgNum=1; iArgNum<iNumOfArgs; iArgNum++) 
    { 
     fprintf(stdout,"%ls\n",pArgs[iArgNum]); 
     fprintf(stderr,"%ls\n",pArgs[iArgNum]); 
    } 
} 

究竟我做错了的是什么?

谢谢。

回答

0

OK,问题就迎刃而解了:

我加入了start /w在某些时候,为了迫使等待完成。

由于某种原因,因此没有任何内容写入到两个目标文件中。

相关问题