static PIXELFORMATDESCRIPTOR pfd //错误出在这!
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
bits,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
但是显示有语法错误,指在在红色字段上,好象是在说类型前缺少“;”号。
具体显示如下:
D:\学习\自学实验\1\MyGL\OpenGl.c(171) : error C2143: syntax error : missing ';' before 'type'
我的头文件是:
#include <windows.h>
//#include <gl\gl.h>
//#include <gl\glu.h>
#include <gl\glut.h>
#include <gl\glaux.h>
其中glut.h, glut.dll, glut32.dll, glut32.lib, glut.lib我全都添加过了,书上说有了glut就可以不带gl.h,glu.h,不知道对不对?
还有用
#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
的时候也是出现一样的错误提示。
gl.h,glu.h我也查过了,我机子上也是有的
查了MSDN也看不出是哪里的问题 ,请各位高手帮忙啊~
11 个解决方案
#1
帮忙顶了。
#2
是缺少 =,不是少;
#3
static PIXELFORMATDESCRIPTOR pfd
--->
static PIXELFORMATDESCRIPTOR pfd =
--->
static PIXELFORMATDESCRIPTOR pfd =
#4
可以mark了~
#5
struct初始化~
比如
typedef _T
{
int a;
int b;
int c;
}T;
T t = {0, 1, 2};
这种方式整体化初始结构体~ 类似于数组的初始化~呵呵
比如
typedef _T
{
int a;
int b;
int c;
}T;
T t = {0, 1, 2};
这种方式整体化初始结构体~ 类似于数组的初始化~呵呵
#6
“=”号我少帖出来了,原来是有的~加了还是不行呢。。。
#7
不可能吧 ,可以的话把代码给我看看
huangyangman@163.com
huangyangman@163.com
#8
opengl32.lib添加了么?
#9
opengl32.lib添过了
哈,找到救星了~huangyangman()我给你发了,注意查收哦~
哈,找到救星了~huangyangman()我给你发了,注意查收哦~
#10
恩,已收到你的邮件
没什么问题 (
只是在C语言中所有的变量定义要放在块的最前面,也就是把
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
放到你那个函数块的前面就行 如下:
BOOL CreateGLWindow(char* title,int width,int height,int bits,BOOL fullscreenflag)
{
/////////////////////////////////////////////////////////////////////
GLuint PixelFormat;
////////////////////////////////////////////////////////////////////
WNDCLASS wc;
////////////////////////////////////////////////////////////////////
DWORD dwExStyle;
DWORD dwStyle;
////////////////////////////////////////////////////////////////////
RECT WindowRect;
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
16,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
WindowRect.left=(long)0;
WindowRect.right=(long)width;
WindowRect.top=(long)0;
WindowRect.bottom=(long)height;
其他的不用改了,另外把程序写完吧 呵呵
没什么问题 (
只是在C语言中所有的变量定义要放在块的最前面,也就是把
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
放到你那个函数块的前面就行 如下:
BOOL CreateGLWindow(char* title,int width,int height,int bits,BOOL fullscreenflag)
{
/////////////////////////////////////////////////////////////////////
GLuint PixelFormat;
////////////////////////////////////////////////////////////////////
WNDCLASS wc;
////////////////////////////////////////////////////////////////////
DWORD dwExStyle;
DWORD dwStyle;
////////////////////////////////////////////////////////////////////
RECT WindowRect;
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
16,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
WindowRect.left=(long)0;
WindowRect.right=(long)width;
WindowRect.top=(long)0;
WindowRect.bottom=(long)height;
其他的不用改了,另外把程序写完吧 呵呵
#11
哦,原来是这样,我一直没注意到呢,谢谢了~
#1
帮忙顶了。
#2
是缺少 =,不是少;
#3
static PIXELFORMATDESCRIPTOR pfd
--->
static PIXELFORMATDESCRIPTOR pfd =
--->
static PIXELFORMATDESCRIPTOR pfd =
#4
可以mark了~
#5
struct初始化~
比如
typedef _T
{
int a;
int b;
int c;
}T;
T t = {0, 1, 2};
这种方式整体化初始结构体~ 类似于数组的初始化~呵呵
比如
typedef _T
{
int a;
int b;
int c;
}T;
T t = {0, 1, 2};
这种方式整体化初始结构体~ 类似于数组的初始化~呵呵
#6
“=”号我少帖出来了,原来是有的~加了还是不行呢。。。
#7
不可能吧 ,可以的话把代码给我看看
huangyangman@163.com
huangyangman@163.com
#8
opengl32.lib添加了么?
#9
opengl32.lib添过了
哈,找到救星了~huangyangman()我给你发了,注意查收哦~
哈,找到救星了~huangyangman()我给你发了,注意查收哦~
#10
恩,已收到你的邮件
没什么问题 (
只是在C语言中所有的变量定义要放在块的最前面,也就是把
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
放到你那个函数块的前面就行 如下:
BOOL CreateGLWindow(char* title,int width,int height,int bits,BOOL fullscreenflag)
{
/////////////////////////////////////////////////////////////////////
GLuint PixelFormat;
////////////////////////////////////////////////////////////////////
WNDCLASS wc;
////////////////////////////////////////////////////////////////////
DWORD dwExStyle;
DWORD dwStyle;
////////////////////////////////////////////////////////////////////
RECT WindowRect;
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
16,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
WindowRect.left=(long)0;
WindowRect.right=(long)width;
WindowRect.top=(long)0;
WindowRect.bottom=(long)height;
其他的不用改了,另外把程序写完吧 呵呵
没什么问题 (
只是在C语言中所有的变量定义要放在块的最前面,也就是把
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
放到你那个函数块的前面就行 如下:
BOOL CreateGLWindow(char* title,int width,int height,int bits,BOOL fullscreenflag)
{
/////////////////////////////////////////////////////////////////////
GLuint PixelFormat;
////////////////////////////////////////////////////////////////////
WNDCLASS wc;
////////////////////////////////////////////////////////////////////
DWORD dwExStyle;
DWORD dwStyle;
////////////////////////////////////////////////////////////////////
RECT WindowRect;
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
16,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
WindowRect.left=(long)0;
WindowRect.right=(long)width;
WindowRect.top=(long)0;
WindowRect.bottom=(long)height;
其他的不用改了,另外把程序写完吧 呵呵
#11
哦,原来是这样,我一直没注意到呢,谢谢了~