OpenGL学习笔记:Console工程下如何不显示控制台黑窗口只显示Windows窗口

刚学习OpenGL,绘制图形的时候,如果不进行设置,运行的时候会先出现黑窗口再出现Windows窗口。

其实要去除控制台窗口非常简单,只需要修改工程设置,把子系统改成Windows,程序的入口点改成mainCRTStartup。

下面我先把几中解决办法列举出来,再解释下我的理解。

方法一:在程序中加入一句#pragma comment(linker, “/subsystem:\”windows\”  /entry:\”mainCRTStartup\””),建议加在include的后面。(注意不要少了空格)

方法二:修改工程设置。

对于vc6,地方在Project->setting->Link->Project Options。

点开后的界面如图,

在右下角的Project Options里面找到/subsytem:,并把其后面其后面的参数改成为windows,然后再找到/entry:,把其后面的值改成”mainCRTStartup”,如果找不到就添加,最后的效果是/subsystem:windows /entry:”mainCRTStartup”。

对于vs2008,地方在项目->属性->链接器,

然后在左边选中高级,如图所示,

在最上面的入口点输入mainCRTStartup,再选中系统,如图所示,

在最上面的子系统选择Windows即可了。

为什么这样设置下就可以了了。主要是因为Windows系统下有几种子系统,一种是控制台,一种是窗口子系统,如果建立了控制台工程肯定是要创建控制台子系统程序了,建立了Windows Application和MFC之类的工程则是窗口子系统了。不同的子系统会链接不同的主函数,控制台的会链接main,窗口的会链接WinMain,如果不匹配肯定会链接失败。

现在我们使用OpenGL编程,又建立的是控制台工程,如果不进行设置肯定会出现黑窗口的,所以我们把工程的子系统改成Windows,但是我们不想改主函数为WinMain了,因为这样会很麻烦,所以我们再把程序入口改成mainCRTStartup。同样如果是win32 App工程下,我们可以把子系统改成控制台,再设置程序入口为WinMainCRTStartup,应该就会得到相反的效果了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂烩

Mongodb linux下安装 原

#对mongo实例来说,每个host允许链接的最大链接数,这些链接空闲时会放入池中,如果链接被耗尽,任何请求链接的操作会被阻塞等待链接可用,推荐配置10

24540
来自专栏pangguoming

使用sshfs挂载远程服务器目录

服务器日志查看,是开发人员和服务器运维人员在工作中经常会遇到的一件事情,只有一台服务器时,比较好办,直接登录服务器使用tail -f file-path 命令就...

22740
来自专栏Java帮帮-微信公众号-技术文章全总结

Linux命令(面试+工作版)

Linux命令(面试+工作版) ? ? ? ? ? ? ? 1. tar 创建一个新的tar文件 ? 解压tar文件 ? 查看tar文件 ? 2. grep 在...

50840
来自专栏pangguoming

linux如何修改文件或目录的权限(chmod)

chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符。777,第一个7代表文件所属者的权限,第二个7代表文件...

395100
来自专栏浪淘沙

Shell学习总结

一、基础指令     1.ls指令         ../    上级目录         ./    当前目录         ls -al     ...

18330
来自专栏机器学习与自然语言处理

Linux系统常用命令总结

1. 最关键的命令 man echo 2. 目录文件操作命令 ls: 查看目录下的文件信息或文件信息 dir: pwd: 打印当前路径 cd:改变路径 mkdi...

22250
来自专栏令仔很忙

令仔学Redis(一)----浅析Redis存储数据时格式的设计

之前接触的一个业务,数据量的话现在在数据库中存了有将近400W的数据,在搜索的时候得到的这些数据会放入达到异步队列中,然后单独开一个线程来进行双写,写缓存,然...

14810
来自专栏IT派

敲黑板:手把手教你 git 全操作

4、合并完成后,删除dev分支.(删除dev分支时,注意我们当前所在的分支不能是dev分支)

11130
来自专栏逻辑熊猫带你玩Python

Linux | 像Windows一样,复制移动重命名等操作

小编在上一篇文章中讲到Linux下的目录操作,一共讲了三个命令,分别是cd、ls、和pwd。但是这里有个问题,既然目录就是文件夹,那么,怎样新建或者删除文件夹,...

62120
来自专栏闵开慧

mysql乱码设置

MySQL默认字符编码的设置 MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明  需...

35860

扫码关注云+社区

领取腾讯云代金券