标题:opengl编程指南上的例子在vc6山不能运行
只看楼主
rjw1900
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-24
 问题点数:0 回复次数:7 
opengl编程指南上的例子在vc6山不能运行
先看看我的代码:
程序代码:
#include <windows.h>
#include <gl/glut.h>

static float spin=0.0;

void init()
{
    glClearColor(0.0,0.0,0.0,0.0);
    glShadeModel(GL_FLAT);
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glRotatef(spin,0.0,0.0,1.0);
    glColor3f(1.0,1.0,1.0);
    glRectf(-25.0,-25.0,25.0,25.0);
    glPopMatrix();
    glutSwapBuffers();

}

void spindisplay(void)
{
    spin=spin+2.0;
    if (spin>360.0)
    {
        spin=spin-360.0;
    }
    glutPostRedisplay();
}

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

void mouse(int button,int state,int x,int y)
{
    switch(button)
    {
    case GLUT_LEFT_BUTTON:
        if (state==GLUT_DOWN)
        {
            glutIdleFunc(spindisplay);
        }
        break;
    case GLUT_RIGHT_BUTTON:
        if (state==GLUT_DOWN)
        {
            glutIdleFunc(NULL);
        }
        break;
    }
}

int main(int argv,char* argc[])
{
    glutInit(&argv,argc);
    glutInitDisplayMode(GL_DOUBLE | GL_RGB);
    glutInitWindowSize(200,300);
    glutInitWindowPosition(300,300);
    glutCreateWindow(argc[0]);
    init();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMouseFunc(mouse);
    glutMainLoop();
    return 0;
}

这个例子是opengl编程指南上范例1.3
可是出现这个结果:
GLUT: Fatal Error in F:\mycode\opengl\fanli01\Debug\fanli01.exe: pixel format with necessary capabilities not found.

我之前配置opengl的时候,看了一个帖子:

如果是VC++6,则应该将glut.h复制在“D:\Program Files\MicrosoftVisualStudio\VC98   \Include\GL文件夹”)。
3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(即与include并排的lib文件夹下)。
4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)
第三步,建立一个OpenGL工程
选择File->New->Project,然后选择Win32 Console Application,(不是win32 application).选择一个名字,然后按OK。在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。然后向该工程添加一个代码文件,取名为“OpenGL.c”,注意用.c来作为文件结尾。
搞定了,就跟平时的工程没什么两样的。

我就是这么配的,可是老是出问题。。。求解。。

是不是要加什么头文件啊??
搜索更多相关主题的帖子: opengl 指南 例子 运行 
2010-11-24 20:56
rjw1900
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-7-24
得分:0 
没有人啊。。。。无助。。。
2010-11-24 22:21
long09120
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-24
得分:0 
不知道
2010-12-20 19:19
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:0 
我是用vs2010是可以啊,LZ可以参考
http://www.

glut.h  ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl

glut.dll,glut32.dll ---> C:\Windows\SysWOW64 (windows7 64位操作系统)

                         ---> C:\Windows\System32   (windows7 32位操作系统)

glut.lib,glut32.lib ---> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib

!!无须!!用宏 #define GLUT_DISABLE_ATEXIT_HACK

好多人glut.h不知道放哪里,自己新建了一个文件夹,其实很多前辈在之前就说过,

要搜索gl这个文件夹,将glut.h放到里面包含gl.h glu.h这两个文件的gl文件夹中.

直接copy下面例程编译即可通过

例程如下

#include <gl\glut.h>

void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
    glFlush();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(400, 400);
    glutCreateWindow("第一个OpenGL程序");
    glutDisplayFunc(&myDisplay);
    glutMainLoop();
    return 0;
}

================================================

1. 把解压得到的glut.h放到"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl"
(与具体安装位置有关,应该是 安装目录\microsoft sdks\windows\v7.0A\include\gl)

2. 把解压得到的glut.lib和glut32.lib放到"“Programfiles(x86)\Microsoft Visual studio 10.0\VC\lib" 中
(与具体安装位置有关,同上)

3. 把解压得到的glut.dll放到"C:\Windows\System32"

4. 把glut32.dll放到“Programfiles(x86)\Microsoft Visual studio 10.0\VC\bin”下
(注意这个,网上有人说放到system32里,但是我试过,会报错)(与具体安装位置有关,同上)
PS:尝试上面的方法的确在编译能够成功,但是运行应用程序时会出错

5. 打开vs2010,随便打开或新建一个项目。 选择 project->project property->
Configuration Properties(配置属性)->Linker(链接器
)->Input->Additional Dependencies(附加依赖项) 在其中添加opengl32.lib glu32.lib glut32.lib


如果这样还报错的话应该注意以下几点:
有时候在建console application 的时候添加的cpp文件将后缀句改为 .c
有的程序需要glaux工具包,这个下载了,可以按上述步骤添加(操作基本相同)
=========================================================================
VS较老版本格式转换后 general error c101008a错误。手动添加lib和头文件,然后project clean一下即可。
本文来自CSDN博客,转载请标明出处:http://blog.

小代码,大智慧
2011-01-03 19:06
BlueGuy
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
以下是引用点线面在2011-1-3 19:06:18的发言:

我是用vs2010是可以啊,LZ可以参考
http://www.

glut.h  ---> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl

glut.dll,glut32.dll ---> C:\Windows\SysWOW64 (windows7 64位操作系统)

                         ---> C:\Windows\System32   (windows7 32位操作系统)

glut.lib,glut32.lib ---> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib

!!无须!!用宏 #define GLUT_DISABLE_ATEXIT_HACK

好多人glut.h不知道放哪里,自己新建了一个文件夹,其实很多前辈在之前就说过,

要搜索gl这个文件夹,将glut.h放到里面包含gl.h glu.h这两个文件的gl文件夹中.

直接copy下面例程编译即可通过

例程如下

#include

void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
    glFlush();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(400, 400);
    glutCreateWindow("第一个OpenGL程序");
    glutDisplayFunc(&myDisplay);
    glutMainLoop();
    return 0;
}

================================================

1. 把解压得到的glut.h放到"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl"
(与具体安装位置有关,应该是 安装目录\microsoft sdks\windows\v7.0A\include\gl)

2. 把解压得到的glut.lib和glut32.lib放到"“Programfiles(x86)\Microsoft Visual studio 10.0\VC\lib" 中
(与具体安装位置有关,同上)

3. 把解压得到的glut.dll放到"C:\Windows\System32"

4. 把glut32.dll放到“Programfiles(x86)\Microsoft Visual studio 10.0\VC\bin”下
(注意这个,网上有人说放到system32里,但是我试过,会报错)(与具体安装位置有关,同上)
PS:尝试上面的方法的确在编译能够成功,但是运行应用程序时会出错

5. 打开vs2010,随便打开或新建一个项目。 选择 project->project property->
Configuration Properties(配置属性)->Linker(链接器
)->Input->Additional Dependencies(附加依赖项) 在其中添加opengl32.lib glu32.lib glut32.lib


如果这样还报错的话应该注意以下几点:
有时候在建console application 的时候添加的cpp文件将后缀句改为 .c
有的程序需要glaux工具包,这个下载了,可以按上述步骤添加(操作基本相同)
=========================================================================
VS较老版本格式转换后 general error c101008a错误。手动添加lib和头文件,然后project clean一下即可。
本文来自CSDN博客,转载请标明出处:http://blog.
建议楼上别在 图形区回帖了, 这里人很少的, 回了别人不一定看的到,直接到 c 区帮助新人吧

我就是真命天子,顺我者生,逆我者死!
2011-01-03 19:07
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
得分:0 
好像没有来,希望图区会活跃起来,有多少人看,就有多少人看。

小代码,大智慧
2011-01-03 19:11
soledad
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-3-27
得分:0 
人来了
2011-03-27 09:36
bussiness
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-3-26
得分:0 
pixel format with necessary capabilities not found是你的像素格式不对吧
把  glutInitDisplayMode(GL_DOUBLE | GL_RGB)  改为 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)就可以了
2011-03-30 21:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326783-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.096697 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved