原址: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 环境中新建一个空的控制台程序,将上述代码添加到工程中,编译运行

隐藏控制台应用程序的窗口相关推荐

  1. 隐藏控制台(console)窗口

    隐藏控制台(console)窗口 #pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" ) // ...

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

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

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

    众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种 ...

  4. VC++ 隐藏控制台程序窗口

    转自:http://hi.baidu.com/sicceer/blog/item/d9c35a810d15c4c8bc3e1ec8.html 设置 #pragma comment( linker, & ...

  5. 在控制台程序中隐藏控制台窗口

    在控制台程序中隐藏控制台窗口 大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只 ...

  6. 隐藏控制台程序的窗口

    网上有很多的例子都说可以修改linker的subsystem熟悉来实现. #pragma comment( linker, "/subsystem:\"windows\" ...

  7. 隐藏控制台程序的dos窗口

    有时侯写一个控制台程序,不需要在前台出现类似DOS窗口的console窗口,这就要隐藏它:隐藏它很简单,只需在程序前面加上 #pragma comment( linker, "/subsys ...

  8. 如何隐藏控制台程序的窗口

    方法一:(会有闪一下黑屏) 在main入口处调用一下FreeConsole   ()试试     要显示的时候调用一下AllocConsole   ()就可以了 方法二 我说的两个缺点     1.可 ...

  9. 在控制台程序中隐藏控制台窗口!

    大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序 中运行一段功能代码, ...

最新文章

  1. [九度][何海涛] 数组中出现次数超过一半的数字
  2. 百度 Serverless 架构揭秘与应用实践
  3. sql 倒数第二个_小白初探SQL(一)
  4. 【动态规划】书的复制 (ssl 1203)
  5. 迅雷精简版-纪念走过的时光
  6. 【译】理解JavaScript闭包——新手指南
  7. 计算机代码大全,电脑运行代码大全
  8. 电脑网线,电脑网线主要分类
  9. 查找计算机网络方面文献正确检索,文献检索第二次计算机检索实习题目(2016.4.10)...
  10. 解决cydia bigboss源空白
  11. 5号字对应的数字字号_五号字体是多少磅的?
  12. 使用Github和PicGO搭建免费图床
  13. 检测图中的负循环 | (贝尔曼福特)
  14. 由点及面,一叶知秋——集合大家族
  15. Jmeter使用代理服务器录制脚本
  16. 函数:无参无返回值函数的使用
  17. 计算机毕业设计——基于HTML电商购物商城项目设计与实现---(服装商城 4页 带登录 带动画)
  18. 关于Node.js后端架构的一点后知后觉
  19. 蓝鲸软件电池称重记录管理系统方案介绍
  20. seafile for linux,利用 Seafile 搭建私人云盘

热门文章

  1. (二)计算机取证-案件确认书及证据表
  2. 架构设计文档模板之1:备选方案模板
  3. 将符号(amp; amp;)解码为正常
  4. QTP工具简单操作使用说明
  5. 1062lcd在dxp哪个库_Protel DXP 自带常用元件库路径
  6. android shortcut 快捷键 相关问题记录
  7. 双非研二师弟的春招总结和实习感悟
  8. openoffice linux 目录,Linux下openoffice的安装
  9. 华为ACL配置(基本ACL+高级ACL+综合应用)
  10. MATLAB画曲线图