- gf25051 的博客
《咸鱼概要 · 目录》隐藏运行窗口
- @ 2026-4-19 18:50:26
在C++中隐藏运行窗口(控制台窗口)主要有以下几种方法:
1. 使用预处理器指令(Windows)
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
int main() {
// 你的代码
return 0;
}
2. 使用WinMain入口点
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow) {
// 你的代码
return 0;
}
3. 动态隐藏控制台窗口
#include <windows.h>
int main() {
// 隐藏当前控制台窗口
HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, SW_HIDE);
// 你的代码
return 0;
}
4. 编译时设置(Visual Studio)
- 项目属性 → 链接器 → 系统 → 子系统 → 选择 Windows (/SUBSYSTEM:WINDOWS)
- 入口点设置为
mainCRTStartup
5. CMake配置
if(WIN32)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
endif()
注意事项
- 方法1-2适合完全隐藏窗口的后台程序
- 方法3可以在需要时临时显示窗口(如调试)
- 控制台程序依然可以通过AttachConsole等方法获取控制台输出
- 这些方法仅适用于Windows平台