日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...

發(fā)布時間:2025/7/25 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
眾所周知,控制臺應(yīng)用程序一般都會顯示一個控制臺窗口(虛擬DOS窗口),但很多時候控制臺程序的執(zhí)行邏輯根本不需要與用戶進行交互,所以顯示這個難看的窗口純屬多余,那么如何將它屏蔽掉呢?下面我向大家介紹一種方法。
  操作系統(tǒng)裝載應(yīng)用程序后,做完初始化工作就轉(zhuǎn)到程序的入口點執(zhí)行。程序的默認入口點實際上是由連接程序設(shè)置的,不同的連接器選擇的入口函數(shù)也不盡相 同。在VC下,連接器對控制臺程序設(shè)置的入口函數(shù)是 mainCRTStartup,mainCRTStartup 再調(diào)用你自己編寫的 main 函數(shù);對圖形用戶界面(GUI)程序設(shè)置的入口函數(shù)是 WinMainCRTStartup,WinMainCRTStartup 調(diào)用你自己寫的 WinMain 函數(shù)。
具體設(shè)置哪個入口點是由連接器的“/subsystem:”選項參數(shù)確定的,它告訴操作系統(tǒng)如何運行編譯生成的.EXE文件。可以指定四種方 式:“CONSOLE|WINDOWS|NATIVE|POSIX”如果這個選項參數(shù)的值為“WINDOWS”,則表示該應(yīng)用程序運行時不需要控制臺,有 關(guān)連接器參數(shù)選項的詳細說明請參考 MSDN 庫。
下面我們將通過預(yù)編譯指令來對編譯器和連接器進行設(shè)置,從而達到我們的目的:例子代碼運行后播放Windows系統(tǒng)啟動聲音三次,然后退出,運行后不會顯示控制臺窗口。

#include <windows.h>
#include <mmsystem.h>

#pragma comment(lib,"winmm.lib") // 告訴連接器與這個庫連接,因為我們要播放多媒體聲音
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") // 設(shè)置連接器選項

int main(void)
{
???PlaySound("SystemStart",NULL, SND_ALIAS|SND_SYNC);
???Sleep(50);
???PlaySound("SystemStart",NULL, SND_ALIAS|SND_SYNC);
???Sleep(50);
???PlaySound("SystemStart",NULL, SND_ALIAS|SND_SYNC);
???Sleep(50);

???return 0;
}

在 IDE 環(huán)境中新建一個空的控制臺程序,將上述代碼添加到工程中,編譯運行。

總結(jié)

以上是生活随笔為你收集整理的屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。