以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  新手问一个关于opengl的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=15640)


--  作者:kingsky
--  发布时间:3/15/2005 6:46:00 PM

--  新手问一个关于opengl的问题
按书上的教程一步一步如下:
new一个win32 simple application
在stdafx.h里加上:
#include <afxtempl.h>
#include <windows.h>
#include <GL/gl.h>
cpp文件是这样的:
#include<stdafx.h>
#include <GL/glu.h>
#include <GL/glaux.h>


void main(void)
{
 auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
 auxInitPosition(0,0,500,500);
 auxInitWindow("simple");
 glClearColor(0.0,0.0,0.0,0.0);
 glClear(GL_COLOR_BUFFER_BIT);
 glColor3f(1.0,0.0,0.0);
 glRectf(-0.5,-0.5,0.5,0.5);
 glFlush();
 _sleep(1000);
}
编译结果:1.cpp(21) : error C2065: '_sleep' : undeclared identifier
另外我问一句:我的步骤对吗?我看有的书上是这么写的:new 一个win32 空的application而不是simple application,然后插入cpp source文件,在里面代码。我那样编的话会显示gl.h文件有问题:gl\gl.h(1152) : error C2144: syntax error : missing ';' before type 'void'。那一行代码是这样的:WINGDIAPI void APIENTRY glAccum (GLenum op, GLfloat value);

但有的的书上是象我这样的。因为还要修改头文件stdafx.h。

会不会是我的6.0本身就有问题呢??


--  作者:innersmile
--  发布时间:3/18/2005 1:48:00 AM

--  Flexible C++ 连载中
如果你不熟悉VC6的IDE的话,看看这个
Setting up Visual C++ for OpenGL
http://www.geocities.com/hughesinnovations/openglsetup01.html

如果要用OpenGL+MFC的话,看看这个
Using OpenGL in Visual C++: Part I
http://www.daniweb.com/techtalkforums/showthread.php?t=8076

建议你用OpenGL+ GLUT, 好处是不用管那些afx的东东, 而且程序也容易
移植到unix/linux下:
Setting up OpenGL for Visual C++ 6.0 / Windows
http://www.airport1.de/opengl.htm



--  作者:innersmile
--  发布时间:3/18/2005 1:52:00 AM

--  Flexible C++ 连载中
以下是引用kingsky在2005-3-15 18:46:49的发言:
按书上的教程一步一步如下:
new一个win32 simple application
在stdafx.h里加上:
#include <afxtempl.h>
#include <windows.h>
#include <GL/gl.h>
cpp文件是这样的:
#include<stdafx.h>
#include <GL/glu.h>
#include <GL/glaux.h>


void main(void)
{
  auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
  auxInitPosition(0,0,500,500);
  auxInitWindow("simple");
  glClearColor(0.0,0.0,0.0,0.0);
  glClear(GL_COLOR_BUFFER_BIT);
  glColor3f(1.0,0.0,0.0);
  glRectf(-0.5,-0.5,0.5,0.5);
  glFlush();
  _sleep(1000);
}
编译结果:1.cpp(21) : error C2065: '_sleep' : undeclared identifier
另外我问一句:我的步骤对吗?我看有的书上是这么写的:new 一个win32 空的application而不是simple application,然后插入cpp source文件,在里面代码。我那样编的话会显示gl.h文件有问题:gl\gl.h(1152) : error C2144: syntax error : missing ';' before type 'void'。那一行代码是这样的:WINGDIAPI void APIENTRY glAccum (GLenum op, GLfloat value);

但有的的书上是象我这样的。因为还要修改头文件stdafx.h。

会不会是我的6.0本身就有问题呢??


你的书很有问题的说, 居然还在用void main().


--  作者:IceBlue
--  发布时间:3/18/2005 9:44:00 AM

--  
学习OpenGL 的本质不是学习一个程序是怎么写才会没有错误,而是应该站在图形学的高度理解为什么会有那么多的GL指令!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms