关于C语言关闭窗口的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C语言关闭窗口的问题相关的知识,希望对你有一定的参考价值。

我想要写一个代码,让他直接关闭这个窗口,请问大佬们如何操作呢?

参考技术A #include<stdio.h>
#include<stdlib.h>

int main()

char m='a';
do
        printf("%c",m);
        system("pause");
        system("exit");//主要是这里

while(!m)
        ;
return 0;

在IDE里永远不会关闭,生成exe再运行就可以了

追问

可是我想要的是直接关闭窗口

追答

这个就是啊

本回答被提问者和网友采纳
参考技术B 在输出用户名或密码无效后,调用这个函数:
exit(0);

Glut,不同线程C ++中的不同上下文[关闭]

【中文标题】Glut,不同线程C ++中的不同上下文[关闭]【英文标题】:Glut, different context in different thread C++ [closed] 【发布时间】:2015-04-09 12:48:54 【问题描述】:

我试图在不同的上下文中使用不同的过剩窗口,我的意思是,每个窗口都有自己的显示回调,空闲...

所以我有一些关于过剩的问题:

第一次尝试:

glutInit在程序开始,线程后-> 当我关闭一个窗口时,发生了错误:

freeglut  ERROR:  Internal <Event Handler> function called without first calling 'glutInit'.

第二次尝试:

每个线程中的glutInit: 当第二个线程启动时:

freeglut illegal glutInit() reinitialization attempt

【问题讨论】:

differents glut window in differents context -> 我不明白它的真正含义。清楚地解释什么是设计。你有多少线程?有多少个窗户?实际调用 OpenGL 例程的线程有多少? 我有 2 个线程(除了主线程)。每个代表一个上下文:一个窗口、回调和 glutMainLoop() AFAIK、GLUT 和多线程不能一起使用。参见例如documentation for glutMainLoop:“这个例程应该在 GLUT 程序中最多调用一次。”使用像 GLFW 这样更现代的库,您可能会更幸运。 【参考方案1】:

GLUT 在设计时并未考虑线程安全(甚至根本不支持多线程)。所以我担心,有了 GLUT,你将无法实现你想要的。但是,GLFW 在这方面似乎要好得多:

线程安全

大多数 GLFW 函数只能从主线程调用,但有些 可以从任何线程调用。但是,不能调用 GLFW 函数 从任何其他线程直到 GLFW 已成功初始化 主线程,包括之前可能调用的函数 初始化。

每个 GLFW 函数的参考文档都说明了它是否 仅限于主线程。

以下类别的功能将继续限于 主线程由于一个或多个平台的限制:

初始化和终止 事件处理 窗口、上下文和光标对象的创建和销毁

这部分在你的情况下似乎很重要:

可以在任何线程上进行渲染。以下上下文相关 可以从任何线程调用函数:

glfwMakeContextCurrent glfwGetCurrentContext glfwSwapBuffers glfwSwapInterval glfwExtension支持 glfwGetProcAddress

[...]

GLFW 在内部不使用同步对象,除了 线程本地存储以跟踪每个线程的当前上下文 线。同步留给应用程序。

来源:GLFW Doc - Thread Safety

【讨论】:

以上是关于关于C语言关闭窗口的问题的主要内容,如果未能解决你的问题,请参考以下文章

C或C++.NET语言中,想实现点击按钮后关闭当前窗口和所有窗口?

C语言的运行文件完了,怎么会自动关闭窗口啊?

各位大虾 vs2010 编译c语言程序 运行时窗口自动关闭 怎么回事?

c语言中啥指令可以关闭dos窗口

关于wpf中按钮关闭原窗口,开启新窗口

DELPHI的关于关闭窗口的非常简单的问题