devc+中的过剩+;“错误”;C+的重新声明+;内置式'short'&引用; 我有这个简单的三角形绘图代码,它会产生一个错误:“C++的内置类型短”的重新声明。但是当我把#include放在#include之前时,它会编译并运行。 有人能解释一下背后的逻辑吗 #include<glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0); glEnd(); glutSwapBuffers(); } int main(int argc, char **argv) { // init GLUT and create Window glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(320,320); glutCreateWindow("My first program"); // register callbacks glutDisplayFunc(renderScene); // enter GLUT event processing cycle glutMainLoop(); return 1; } #包括 void renderScene(void){ glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位); glBegin(GL_三角形); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0); 格伦德(); glutSwapBuffers(); } int main(int argc,字符**argv){ //初始化GLUT并创建窗口 glutInit(&argc,argv); glutInitDisplayMode(GLUT_深度| GLUT_双精度| GLUT_RGBA); 位置(100100); glutInitWindowSize(320320); glutCreateWindow(“我的第一个程序”); //注册回调 glutDisplayFunc(渲染场景); //输入GLUT事件处理周期 glutMainLoop(); 返回1; }
很难说没有看到确切的glut.h和库版本,但我看到了glut.h的第45行:devc+中的过剩+;“错误”;C+的重新声明+;内置式'short'&引用; 我有这个简单的三角形绘图代码,它会产生一个错误:“C++的内置类型短”的重新声明。但是当我把#include放在#include之前时,它会编译并运行。 有人能解释一下背后的逻辑吗 #include<glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0); glEnd(); glutSwapBuffers(); } int main(int argc, char **argv) { // init GLUT and create Window glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(320,320); glutCreateWindow("My first program"); // register callbacks glutDisplayFunc(renderScene); // enter GLUT event processing cycle glutMainLoop(); return 1; } #包括 void renderScene(void){ glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位); glBegin(GL_三角形); glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0); 格伦德(); glutSwapBuffers(); } int main(int argc,字符**argv){ //初始化GLUT并创建窗口 glutInit(&argc,argv); glutInitDisplayMode(GLUT_深度| GLUT_双精度| GLUT_RGBA); 位置(100100); glutInitWindowSize(320320); glutCreateWindow(“我的第一个程序”); //注册回调 glutDisplayFunc(渲染场景); //输入GLUT事件处理周期 glutMainLoop(); 返回1; },c++,opengl,compiler-construction,glut,dev-c++,C++,Opengl,Compiler Construction,Glut,Dev C++,很难说没有看到确切的glut.h和库版本,但我看到了glut.h的第45行: /* XXX This is from Win32's <ctype.h> */ # ifndef _WCHAR_T_DEFINED typedef unsigned short wchar_t; # define _WCHAR_T_DEFINED # endif 这是内置类型的重新声明(不要使用.h btw,它不再按照标准使用)正在添加定义以使typedef不被执行,或者取消定义wchar
/* XXX This is from Win32's <ctype.h> */
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
# define _WCHAR_T_DEFINED
# endif
这是内置类型的重新声明
(不要使用.h btw,它不再按照标准使用)正在添加定义以使typedef不被执行,或者取消定义wchar\u t
,如果它是一个宏,则typedef是合法的。很难说没有看到确切的glut.h和库版本,但我看到glut.h的第45行:
/* XXX This is from Win32's <ctype.h> */
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
# define _WCHAR_T_DEFINED
# endif
这是内置类型的重新声明<代码> < /C++ >(不要使用.h BTW,它不再被使用,标准)是添加定义,使得TyPube不被执行,或者不去定义<代码> WCARYTT 如果是宏,那么TyPulf是合法的。< /P> < P>我在我的赛车项目时面对C++代码内置的类型“W查尔夫t”/代码>的错误重新声明。我在谷歌上搜索,但没有找到任何解决问题的方法:-( 但后来,我通过自己加入“windows.h”解决了这个问题:-)
#包括
#包括
#包括
必须在顶部添加#include
。如果将其添加到glut.h
下,则会出现错误
#包括
为安全起见刚刚添加的:-p
<>代码< > <代码> >代码>包含<代码> >文件夹>代码> GLUT.H./C> >。 < P>我在我赛车项目时面对C++代码内置的类型“W查尔夫t”/代码>错误重新声明。我在谷歌上搜索,但没有找到任何解决问题的方法:-( 但后来,我通过自己加入“windows.h”解决了这个问题:-)
#包括
#包括
#包括
必须在顶部添加#include
。如果将其添加到glut.h
下,则会出现错误
#包括
为安全起见刚刚添加的:-p
使用
#include
或#include
取决于放置glut.h
的文件夹。我遇到了同样的问题,在“glut.h”文件中将wchar_t变量名更改为wchar_tt,效果很好
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_tt;
# define _WCHAR_T_DEFINED
# endif
# endif
我也遇到了同样的问题,在“glut.h”文件中将wchar_t变量名更改为wchar_tt,效果很好
# ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_tt;
# define _WCHAR_T_DEFINED
# endif
# endif
第一个问题是“为什么我把iostream.h放在第一位时它会起作用”@wallyk这个标题会更好!但我需要它工作的原因?我建议您查看两个版本的预处理器输出,也许您可以在那里找到原因。请发布完整的编译器调用和输出。我不确定您的问题,但iostream不是一个.h文件,您应该在最后使用“#include”而不使用.h”。这是主要问题“为什么我将iostream.h放在第一位时它会起作用“?@wallyk这个标题会更好!但我需要它工作的原因?我建议您查看两个版本的预处理器输出,也许您可以在那里找到原因。请发布完整的编译器调用和输出。我不确定您的问题,但iostream不是.h文件,您应该在结尾使用“#include”而不使用“.h”。这就是为什么对于这样的内容,
typedef
比#define
更好的原因。@JamesMcLaughlin感谢您的回复。我从[此处]()下载了所有文件,这就是为什么typedef
比#define
更适合此类内容的原因。@JamesMcLaughlin感谢您的回复。我从[这里]下载了所有文件()#为了安全起见刚刚添加了一些文件!永远不要推荐使用该标题:#为了安全起见,刚刚添加了include!永远不要建议使用该标题: