簡體   English   中英

關閉應用程序而不顯示控制台窗口

[英]Closing Application without showing console window

我編寫了非常簡單的控制台應用程序,它支持某些命令行選項。 如果沒有命令行參數(這意味着只有1個參數),應用程序將關閉而不顯示黑色窗口,當前,如果您運行下面的代碼,因為它沒有命令行參數,它將立即關閉,但將顯示黑色的窗口一秒鍾,我想避免它。 那么,如何以一種簡單的方式做到這一點?

#include <iostream>
using namespace std;

int main(int argc,char** argv)
{
    if (argc==1) return 0;
    if (argc!=1)
    for (int i=2; i<=argc; i++)
        cout << argv[i] << endl;
    cin.sync();cin.get();
    return 0;
} 

為了運行該程序,Windows需要一個控制台窗口。 創建控制台窗口后,控件進入main。 只有在main內部,您才能檢查命令行參數。 這意味着,不可能做您想做的事。

但是,您可以使用CreateProcess API運行程序而不顯示控制台窗口。 因此,如果可以從另一個程序運行控制台應用程序,則可以檢查是否存在命令行參數,然后決定是否應使用CreateProcess來顯示控制台窗口。

要不使用CreateProcess顯示控制台窗口,請將STARTUPINFOdwFlags參數設置為STARTF_USESHOWWINDOW,然后在wShowWindow參數中指定SW_HIDE。

如果創建控制台應用程序,則無法從控制台窗口創建中退出。

但是您可以使用入口點WinMain創建win32應用程序 ,並且不會創建窗口,而只是作為控制台程序工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM