显示/去掉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 环境中新建一个空的控制台程序,将上述代码添加到工程中,编译运行。
显示/去掉CONSOLE窗口的更多相关文章
- 去掉 CONSOLE 窗口(转)
建立一个win32 console application的话,linker的/subsystem选项应该为CONSOLE,可以在VC开发环境的project->setting->link ...
- MyEclipse取消自动跳到Console窗口
在Myeclipse中当全屏查看其它文件时,如果控制台有东西输出,就会弹出控制台窗口,如何取消? 方法1: -->右键在console窗口中点Preferences, -->将Show w ...
- javascript进行百度换肤 和显示隐藏一个窗口的操作
简单的运用javascript来进行百度换肤的操作 <!DOCTYPE html> <html lang="en"> <head> <me ...
- iOS开发小技巧--判断控件是否显示在当前窗口
一.判断控件是否显示在当前窗口,需要同时满足一下条件: 控件的Hidden = NO; 控件的Alpha >= 0.01; self.window = keyWindow; 主窗口的bounds ...
- C# WinForm 应用程序 开启Console窗口
/********************************************************************************* * C# WinForm 应用程序 ...
- Xcode中,调试console窗口输出error: Couldn't materialize struct: the variable 'cell' has no location, it may have been optimized out的问题
Xcode中调试代码时,常常需要使用console窗口查看变量的信息,比如使用了如下的命令来输出有关UITableView中一个UITableViewCell的信息, po cell 令人感到意外的是 ...
- .Net下一个Winform方案可以让MessageBox.Show它显示在父窗口的中间
下面的文字,缺省值是在屏幕中间显示. DialogResult dr = MessageBox.Show("是否要删除此数据?", "删除确认", Messag ...
- 使用【 ajax 】【 bootstrap 】显示出小窗口 详情内容 一些代码意思可以参考下一个文章
使用[ bootstrap ]显示出小窗口 详情内容 显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...
- 运行批处理文件怎么不显示DOS命令窗口
运行批处理文件怎么不显示DOS命令窗口 BAT没法不显示DOS窗口.你可以考虑用脚本保持以下到文本文件,重命名为AutoUp_ddyy.vbs set WshShell = WScript.Cre ...
随机推荐
- EntityFramework版本下载和更新
安装指定版本的Package(例如:EntityFramework 5.0): PM> Install-Package EntityFramework -ProjectName MusicSto ...
- TortoiseSVN中分支和合并实践
使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并 ...
- ViewPager 滑动页(二)
需求:滑动展示页,能够使用本地数据,及获取服务器数据进行刷新操作,并实现页面自动切换: 效果图: 实现分析: 1.目录结构: 代码实现: 1.PosterView.java package com.j ...
- mongo客户端mongo VUE增删改查
一.先创建一张mongo表,右击已创建的数据库test,点击addcollection.. 输入Collection Name,点击ok: 二.在创建的表中新增列与数据,右击表选择Insert doc ...
- Selenium的PageFactory在大型项目中的应用
出路出路,走出去了,总是会有路的:困难苦难,困在家里就是难. 因为最近遇到的技术问题一直没找到可行的解决办法,一直在翻看selenium的源代码,之前写测试代码的时候就是拿来即用,写什么功能啊,就按手 ...
- appium初探问题总结
自从搭建好环境后,运行一个appdemo各种奇葩问题层出不穷,过后可能觉得是挺简单的问题,但对于初次接触的人来说,有砸电脑的冲动也不为过·这里将自己所遇到的问题记录下来,备忘. 问题一:照着网上的教程 ...
- Cppcheck代码分析(2)
功能 解析函数中的可能的代码执行流 函数实际执行中只会执行代码流中的一条流 分析: 分支语句 if-else ,switch-case 循环语句 while, do-while ,for 代码流举例 ...
- POJ-2926 Requirements 最远曼哈顿距离
题目链接:http://poj.org/problem?id=2926 题意:求5维空间的点集中的最远曼哈顿距离.. 降维处理,推荐2009武森<浅谈信息学竞赛中的“0”和“1”>以及&l ...
- CM 部署bigdata测试环境群集机器报错
CM repo库info;
- 详解Objective-C的meta-class
比较简单的一篇英文,重点是讲解meta-class.翻译下,加深理解. 原文标题:What is a meta-class in Objective-C? 原文地址:http://www.cocoaw ...