游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3153|回复: 6

怎么去掉那个命令行窗口

[复制链接]

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-4-27 20:05:00 | 显示全部楼层 |阅读模式
有的opengl程序有命令行,可以方便调试,可是我不想要他,怎么去掉呢

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-4-27 22:11:00 | 显示全部楼层

Re:怎么去掉那个命令行窗口

windows方法:
在main文件头部加上#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-28 09:00:00 | 显示全部楼层

Re:怎么去掉那个命令行窗口

谢谢,成功了,不过我不明白,为什么有的opengl程序没有加上那行,他也没有产生命令行窗口,有的却有,能解释一下吗

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-28 09:07:00 | 显示全部楼层

Re:怎么去掉那个命令行窗口

pragma comment(...)
该指令将一个注释记录放入一个对象文件或可执行文件中。
常用的lib关键字,可以帮我们连入一个库文件。


我就知道这么多了,呵呵,还是不大理解,还是请高手帮忙解释一下

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-28 09:26:00 | 显示全部楼层

Re:怎么去掉那个命令行窗口

众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟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 环境中新建一个空的控制台程序,将上述代码添加到工程中,编译运行。

呵呵,明白了

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-4-30 23:13:00 | 显示全部楼层

Re:怎么去掉那个命令行窗口


我也只知道方法不知道为什么

45

主题

181

帖子

181

积分

注册会员

Rank: 2

积分
181
发表于 2005-5-1 23:57:00 | 显示全部楼层

Re:怎么去掉那个命令行窗口

不错,学到了:)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 13:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表