隐藏控制台应用程序的窗口
原址:http://www.cnblogs.com/kex1n/archive/2011/04/10/2011254.html
众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟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 环境中新建一个空的控制台程序,将上述代码添加到工程中,编译运行
隐藏控制台应用程序的窗口相关推荐
- 隐藏控制台(console)窗口
隐藏控制台(console)窗口 #pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" ) // ...
- 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)
屏蔽控制台应用程序的窗口#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") 众所周知,控制台应用 ...
- 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...
众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种 ...
- VC++ 隐藏控制台程序窗口
转自:http://hi.baidu.com/sicceer/blog/item/d9c35a810d15c4c8bc3e1ec8.html 设置 #pragma comment( linker, & ...
- 在控制台程序中隐藏控制台窗口
在控制台程序中隐藏控制台窗口 大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只 ...
- 隐藏控制台程序的窗口
网上有很多的例子都说可以修改linker的subsystem熟悉来实现. #pragma comment( linker, "/subsystem:\"windows\" ...
- 隐藏控制台程序的dos窗口
有时侯写一个控制台程序,不需要在前台出现类似DOS窗口的console窗口,这就要隐藏它:隐藏它很简单,只需在程序前面加上 #pragma comment( linker, "/subsys ...
- 如何隐藏控制台程序的窗口
方法一:(会有闪一下黑屏) 在main入口处调用一下FreeConsole ()试试 要显示的时候调用一下AllocConsole ()就可以了 方法二 我说的两个缺点 1.可 ...
- 在控制台程序中隐藏控制台窗口!
大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序 中运行一段功能代码, ...
最新文章
- [九度][何海涛] 数组中出现次数超过一半的数字
- 百度 Serverless 架构揭秘与应用实践
- sql 倒数第二个_小白初探SQL(一)
- 【动态规划】书的复制 (ssl 1203)
- 迅雷精简版-纪念走过的时光
- 【译】理解JavaScript闭包——新手指南
- 计算机代码大全,电脑运行代码大全
- 电脑网线,电脑网线主要分类
- 查找计算机网络方面文献正确检索,文献检索第二次计算机检索实习题目(2016.4.10)...
- 解决cydia bigboss源空白
- 5号字对应的数字字号_五号字体是多少磅的?
- 使用Github和PicGO搭建免费图床
- 检测图中的负循环 | (贝尔曼福特)
- 由点及面,一叶知秋——集合大家族
- Jmeter使用代理服务器录制脚本
- 函数:无参无返回值函数的使用
- 计算机毕业设计——基于HTML电商购物商城项目设计与实现---(服装商城 4页 带登录 带动画)
- 关于Node.js后端架构的一点后知后觉
- 蓝鲸软件电池称重记录管理系统方案介绍
- seafile for linux,利用 Seafile 搭建私人云盘