[转] 如何去掉有的opengl程序所具有的命令行窗口?
来源:互联网 发布:centos怎么安装输入法 编辑:程序博客网 时间:2024/05/29 14:02
众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种方法。
操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口点实际上是由连接程序设置的,不同的连接器选择的入口函数也不尽相同。在VC下,连接器对控制台程序设置的入口函数是 mainCRTStartup,mainCRTStartup 再调用你自己编写的 main 函数;对图形用户界面(GUI)程序设置的入口函数是 WinMainCRTStartup,WinMainCRTStartup 调用你自己写的 WinMain 函数。
具体设置哪个入口点是由连接器的“/subsystem:”选项参数确定的,它告诉操作系统如何运行编译生成的.EXE文件。可以指定四种方式:“CONSOLE|WINDOWS|NATIVE|POSIX”如果这个选项参数的值为“WINDOWS”,则表示该应用程序运行时不需要控制台,有关连接器参数选项的详细说明请参考 MSDN 库。
下面我们将通过预编译指令来对编译器和连接器进行设置,从而达到我们的目的:例子代码运行后播放Windows系统启动声音三次,然后退出,运行后不会显示控制台窗口。
操作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口点实际上是由连接程序设置的,不同的连接器选择的入口函数也不尽相同。在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 环境中新建一个空的控制台程序,将上述代码添加到工程中,编译运行。
- [转] 如何去掉有的opengl程序所具有的命令行窗口?
- 如何去掉OpenGL的控制台窗口
- OPENGL的glut,如何将控制台窗口去掉?
- 简单的OpenGL窗口程序
- 英文简历中如何说明自己所具有的电脑技能
- 如何去掉控制台应用程序的窗口
- 如何去掉CDockablePane窗口的标题栏
- 如何去掉CDockablePane窗口的标题栏
- 隐藏命令行窗口程序的命令行,静默运行
- php7所具有的特色
- MFC窗口程序显示命令行输出窗口的方法
- MFC窗口程序显示命令行输出窗口的方法
- MFC窗口程序显示命令行输出窗口的方法
- MFC窗口程序显示命令行输出窗口的方法
- 如何在windows命令行窗口运行Java程序
- 去掉窗口程序ESC退出
- MFC程序如何去掉上面的工具栏
- GTK - 如何去掉背后的黑色的控制台窗口?
- [转] Release 版会出错可能原因
- 百分之二的成功者
- [转] 关于 Blog 和 RSS 的全面介绍
- [转] C++程序内存分配的问题
- 学习的关键——重复
- [转] 如何去掉有的opengl程序所具有的命令行窗口?
- [转] 淺談遊戲程式設計入門 - [進階篇]
- [转] 关于怎么学习API (OpenGL/Direct3D等)
- [转] 如何用正确的方法来写出质量好的软件的75条体会
- 网络游戏:为什么失败(转自CSDN之Nightmare的BLOG)
- 写给想当程序员的朋友(上)
- 我为什么不要应届毕业生
- 写给想当程序员的朋友(下)
- 找回Eclipse 3.1中的 Alt+/ 快捷键