C++ 将消息返回到启动MFC应用程序的同一命令行

C++ 将消息返回到启动MFC应用程序的同一命令行,c++,mfc,C++,Mfc,我正在从命令行执行一个MFC应用程序,该应用程序包含四个命令行参数。其中一个参数是目录路径。 如果路径错误,则我希望在同一命令行上显示消息“Bad path” 注意:为了显示我不想使用新的命令行。基本上不支持。有一种已知的“变通方法”,使用AttachConsole(-1)连接父进程控制台。当然也有缺点(比如,父控制台不会等待您的EXE终止,因为它不是“控制台”应用)。总之,基本思想是: void WriteToParentConsole() { if (AttachConsole(-1

我正在从命令行执行一个MFC应用程序,该应用程序包含四个命令行参数。其中一个参数是目录路径。 如果路径错误,则我希望在同一命令行上显示消息“Bad path”


注意:为了显示我不想使用新的命令行。基本上不支持。有一种已知的“变通方法”,使用AttachConsole(-1)连接父进程控制台。当然也有缺点(比如,父控制台不会等待您的EXE终止,因为它不是“控制台”应用)。总之,基本思想是:

void WriteToParentConsole()
{
    if (AttachConsole(-1))
    {
        char msg[] = "Bad Path!";
        WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), msg, sizeof(msg), NULL, NULL);

        // send ENTER (optional)
        // ::SendMessage(GetConsoleWindow(), WM_CHAR, VK_RETURN, 0);

        FreeConsole();
    }
}
例如,您可以查看本文,或者在AttachConsole/GUI vs Console上搜索一些内容以了解更多信息:

要继承父控制台,必须将应用程序设置为控制台应用程序;另一方面,即使应用程序不是从命令行启动,也会显示控制台。作为替代方法,请使用返回代码。定义一个表示“坏路径”的返回码,比如说99,然后用这个返回码退出MFC应用程序。然后,您的命令行将显示返回代码感谢一百万尼古拉。它完全按照我希望的那样工作。