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

时间:2015-06-10 10:57:14

标签: c++ mfc

我正在从命令行执行 MFC应用程序,该命令行需要四个命令行参数。其中一个参数是目录路径。 如果路径错误,那么我想在同一命令行上显示消息“错误路径”

注意:显示我不想使用新的命令行。

1 个答案:

答案 0 :(得分:0)

基本上不支持。有一些已知的"解决方法"为此,使用AttachConsole(-1)来附加父进程控制台。当然有缺点(比如,父控制台不会等待你的EXE终止,因为它不是" console" app)。无论如何,基本想法:

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与控制台上搜索某些内容以获取更多信息: http://www.tillett.info/2013/05/13/how-to-create-a-windows-program-that-works-as-both-as-a-gui-and-console-application/