使用参数 + stdout + stderr 从命令行调用 MFC 应用程序

Calling MFC application from command line with arguments + stdout + stderr

本文关键字:调用 命令行 MFC 应用程序 stderr 参数 stdout      更新时间:2023-10-16

我正在尝试使用命令行中的输入参数调用我的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,"%lsn",pArgs[iArgNum]);
fprintf(stderr,"%lsn",pArgs[iArgNum]);
}
}

我到底做错了什么?

好的,问题解决了:

我在某个时候添加了start /w,以便强制等待完成。

出于某种原因,因此,不会将任何内容写入两个目标文件。