游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7879|回复: 20

为什么程序运行瞬间就消失了?

[复制链接]

3

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2006-11-1 17:23:00 | 显示全部楼层 |阅读模式
代码如下 贝赛尔曲线得例子 请指点
#include <gl/glut.h>
#include <stdlib.h>
#define MAX_CPTS 25

GLfloat cpts[MAX_CPTS][3];
int ncpts=0;

static int width=500,height=500;
void drawCurvers()
{
        int i;
        for(i=0;i<ncpts-3;i+=3)
        {
                glMap1f(GL_MAP1_VERTEX_3,0.0,1.0,3,4,cpts);
                glMapGrid1f(30,0.0,1.0);
                glEvalMesh1(GL_LINE,0,30);
        }
        glFlush();
}

static void display()
{
        int i;
        glClear(GL_COLOR_BUFFER_BIT);

        glBegin(GL_POINT);
        for(i=0;i<ncpts;i++)
                glVertex3fv(cpts);
        glEnd();

        glFlush();
}

static void mouse(int btn,int state,int x,int y)
{
        float wx,wy;
        if(btn != GLUT_LEFT_BUTTON || state!= GLUT_DOWN)
                return;
        wx=(2.0*x)/(float)(width-1)-1.0;
        wy=(2.0*(height-y))/(float)(height)-1.0;

        if(ncpts == MAX_CPTS) return;

        cpts[ncpts][0]=wx;
        cpts[ncpts][1]=wy;
        cpts[ncpts][2]=0.0;
        ncpts++;
       
        glPointSize(5.0);
        glBegin(GL_POINT);
        glVertex3f(wx,wy,0.0);
        glEnd();
        glFlush();
}

void keyboard(unsigned char key,int x,int y)
{
        switch(key)
        {
        case 'q':
        case 'Q':
                //exit(1);
                break;
        case 'C':
        case 'c':
                ncpts=0;
                glutPostRedisplay();
                break;
        case 'e':
        case 'E':
                glutPostRedisplay();
                break;
        case 'b':
        case 'B':
                drawCurvers();
                break;
        }
}

void reshape(int w,int h)
{
        width=w;
        height=h;
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
        glMatrixMode(GL_MODELVIEW);
        glViewport(0,0,w,h);
}

void main(int argc,char **argv)
{
        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
        glutInitWindowSize(width,height);
        glutCreateWindow("Bezier Curer");
        glutDisplayFunc(display);
        glutMouseFunc(mouse);
        glutKeyboardFunc(keyboard);
        glutReshapeFunc(reshape);
        glClearColor(1.0,1.0,1.0,1.0);
        glColor3f(0.0,0.0,0.0);
        glPointSize(5.0);
        glEnable(GL_MAP1_VERTEX_3);
        glutMainLoop();
}

1

主题

11

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-11-1 19:15:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

因为。。。。。你的程序被操作系统秒杀了。

3

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
 楼主| 发表于 2006-11-2 09:46:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

为什么呢 楼上指点下

15

主题

129

帖子

129

积分

注册会员

Rank: 2

积分
129
QQ
发表于 2006-11-2 10:34:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

void main()...
你到底是windows程序还是dos下的?
用winmain

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-2 11:10:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

。。。楼上的。谁告诉你main是dos的啊。我就一直用的main。

15

主题

129

帖子

129

积分

注册会员

Rank: 2

积分
129
QQ
发表于 2006-11-2 11:47:00 | 显示全部楼层

Re: Re:为什么程序运行瞬间就消失了?

xpertsoft: Re:为什么程序运行瞬间就消失了?

。。。楼上的。谁告诉你main是dos的啊。我就一直用的main。

建立windows程序难道不是用winmain?dos到不是,不过也类似吧,假dos。那你说怎么解决?

21

主题

230

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2006-11-2 12:07:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

不会瞬间就消失吧?我这里会弹出一个窗口。而且鼠标消息也能响应。
其他OPENGL的例子能执行不

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-11-2 12:30:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

我从来都是创建一个控制台,才起一个窗口。打印调式信息多方便啊。
main和winmain根本就不是必须的。
你愿意你可以写一个 _MyMain。
你指定/subsystem:console,系统(可能是CRT,不清楚)会为你创建一个console,把stdin stout stderror都定向到这个控制台上来。 CRT在初始化完后会自动调用main() _tmain()。

如果你指定/system:windows,系统是不是为你分配console。如果你要的话需要自己去创建console。好象是叫AllocConsole什么的。 


同时CRT是默认从mainCRTStartup/WinMainCRTStartup启动的, 这个入口是可以在连接的时候指定的。

基础东西。多补补吧

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-2 12:31:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

应该是你没有glut32.dll或freeglut.dll
你开个dos窗口运行看看提示就知道了

3

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
 楼主| 发表于 2006-11-2 20:42:00 | 显示全部楼层

Re:为什么程序运行瞬间就消失了?

我抄其他的例子没问题 就这个一弹出窗口就消失了  dos那个控制台还在。

你们用这个程序没事嘛?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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