Windows Console 控制檯、視窗介面切換
眾所周知,控制檯應用程式一般都會顯示一個控制檯視窗(虛擬DOS視窗),但很多時候控制檯程式的執行邏輯根本不需要與使用者進行互動,所以顯示這個難看的視窗純屬多餘,那麼如何將它遮蔽掉呢?下面我向大家介紹一種方法。
作業系統裝載應用程式後,做完初始化工作就轉到程式的入口點執行。程式的預設入口點實際上是由連線程式設定的,不同的聯結器選擇的入口函式也不盡相同。在VC下,聯結器對控制檯程式設定的入口函式是 mainCRTStartup,mainCRTStartup 再呼叫你自己編寫的 main 函式;對圖形使用者介面(GUI)程式設定的入口函式是 WinMainCRTStartup,WinMainCRTStartup 呼叫你自己寫的 WinMain 函式。
具體設定哪個入口點是由聯結器的“/subsystem:”選項引數確定的,它告訴作業系統如何執行編譯生成的.EXE檔案。可以指定四種方式:“CONSOLE|WINDOWS|NATIVE|POSIX”如果這個選項引數的值為“WINDOWS”,則表示該應用程式執行時不需要控制檯,有關聯結器引數選項的詳細說明請參考 MSDN 庫。
下面我們將通過預編譯指令來對編譯器和聯結器進行設定,從而達到我們的目的:例子程式碼執行後播放Windows系統啟動聲音三次,然後退出,執行後不會顯示控制檯視窗。
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib") // 告訴聯結器與這個庫連線,因為我們要播放多媒體聲音
#pragma comment( linker, "/subsystem:/"windows/" /entry:/"mainCRTStartup/"" ) // 設定聯結器選項
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 環境中新建一個空的控制檯程式,將上述程式碼新增到工程中,編譯執行。
作業系統裝載應用程式後,做完初始化工作就轉到程式的入口點執行。程式的預設入口點實際上是由連線程式設定的,不同的聯結器選擇的入口函式也不盡相同。在VC下,聯結器對控制檯程式設定的入口函式是 mainCRTStartup,mainCRTStartup 再呼叫你自己編寫的 main 函式;對圖形使用者介面(GUI)程式設定的入口函式是 WinMainCRTStartup,WinMainCRTStartup 呼叫你自己寫的 WinMain 函式。
具體設定哪個入口點是由聯結器的“/subsystem:”選項引數確定的,它告訴作業系統如何執行編譯生成的.EXE檔案。可以指定四種方式:“CONSOLE|WINDOWS|NATIVE|POSIX”如果這個選項引數的值為“WINDOWS”,則表示該應用程式執行時不需要控制檯,有關聯結器引數選項的詳細說明請參考 MSDN 庫。
下面我們將通過預編譯指令來對編譯器和聯結器進行設定,從而達到我們的目的:例子程式碼執行後播放Windows系統啟動聲音三次,然後退出,執行後不會顯示控制檯視窗。
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib") // 告訴聯結器與這個庫連線,因為我們要播放多媒體聲音
#pragma comment( linker, "/subsystem:/"windows/" /entry:/"mainCRTStartup/"" ) // 設定聯結器選項
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 環境中新建一個空的控制檯程式,將上述程式碼新增到工程中,編譯執行。
相關文章
- Unity控制檯console列印富文字Unity
- Chrome控制檯,console實用教程Chrome
- c# 控制檯console進度條C#
- win10如何快速切換軟體 windows10怎麼切換軟體視窗Win10Windows
- 如何禁用控制檯視窗的關閉按鈕?
- win10 如何快速切換兩個視窗 win10怎麼切視窗Win10
- AltTab 6.7.4 讓你體驗Windows的alt-tab視窗切換功能Windows
- Mac優秀的視窗切換神器:WitchMac
- 切換電腦頁面、視窗快捷鍵
- win10切換視窗的快捷鍵是什麼_win10如何使用切換視窗的快捷鍵Win10
- 最好用的mac視窗切換神器:Witch for MacMac
- Win10系統切換視窗卡頓怎麼辦_win10切換視窗卡頓的解決教程Win10
- win10 如何在不同視窗切換 win10 切換不同的桌面方法Win10
- # 2021-01-03 #「GNU Emacs」- 快速切換視窗(Window)Mac
- [python][selenium] Web UI自動化切換iframe框架以及瀏覽器操作切換視窗和處理彈窗PythonWebUI框架瀏覽器
- 淺析 C# Console 控制檯為什麼也會卡死C#
- 去掉vs中的console的黑視窗
- win10怎麼使用快捷鍵換視窗_win10利用快捷鍵快速切換視窗步驟Win10
- [C++]常用的windows控制檯操作C++Windows
- chrome 控制檯console 呼叫vue頁面的方法--來自chatgpt的回答ChromeVueChatGPT
- 使用Spectre.Console定製.NET控制檯輸出樣式演示
- tokio-rs/console:非同步Rust執行偵錯程式控制檯非同步Rust
- 控制檯實時檢視 sqlSQL
- 使用此開源視窗環境一次執行多個控制檯
- Windows API視窗程式設計 - 空白視窗WindowsAPI程式設計
- windows10登入介面切換使用者怎麼操作_win10開機介面如何切換使用者WindowsWin10
- Emacs月月積累(二):視窗、緩衝區和常用模式切換Mac模式
- Flutter 多個版本切換控制Flutter
- ubuntu 介面和終端切換Ubuntu
- [高效Mac] 多顯示器快速切換滑鼠焦點和移動視窗Mac
- Witch for Mac(最好用的mac視窗切換神器) v4.3.7啟用版Mac
- linux下使用tomcat檢視控制檯資訊LinuxTomcat
- zookeeper控制檯
- 給 Flutter 介面切換來點特效Flutter特效
- JAVA控制檯下:控制檯商城購物系統Java
- nvm for windows切換node版本無效Windows
- 切換Windows的系統語言Windows
- windows/linux下nvm管理nodeJS切換WindowsLinuxNodeJS
- 藍牛視窗定時切換置頂系統V1.00免費版