C中的CreateProcess太快了关闭控制台

时间:2016-11-15 19:31:09

标签: c multithreading

我在C中使用createProcess打开命令提示符来执行jar。我已经找到了所有的问题,但为了调试,我想以某种方式添加一些控制台不会闪烁并立即消失的东西。

我正在寻找的是罐子的执行和命令窗口在它终止之前等待我按下按钮。

这只会用于调试,我会在将其删除之前删除它,因为控制台窗口不会挂起并杀死所有内容。

    if (!CreateProcess(NULL,   // No module name (use command line)
        "java -jar testfile.jar",        // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        0,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi)           // Pointer to PROCESS_INFORMATION structure
        ){
            MessageBox(0, "test jar passed", "jar executed", 1);
            return 1;
        }
    else {
        printf("create process call to jar was sucessful");
        MessageBox(0,"jar failed", "Error Test", 1);
        return 0;
    }
}

我没有使用IDE,而是在不同的系统上安装,所以我需要创建dll。无法使用IDE功能来停止命令提示

1 个答案:

答案 0 :(得分:1)

要停止控制台的闪烁,您可以使用getch()

getch()等待用户输入字符。如果您没有getch(),则可以使用其他功能,例如getche()getchar()。但与getch()不同,它需要额外的换行符。

我认为它解决了你的问题。