error C2501: 'AUX_RGBImageRec' : missing storage-class or type specifiers
2009-10-17 10:32
567 查看
今天花了一天才解决了一个问题,之前在百度搜索搜索了总是找不到答案,现在自己解决了,希望以后有人再遇到这个问题,能够对他有所帮助,相当于做一件好事。
我的程序定义了如下一个函数
AUX_RGBImageRec *LoadImage(char *Filename) // 载入位图
{
FILE *File=NULL; // 文件句柄
if (!Filename) //文件名已给了吗?
{
return NULL; // 若没有则返回NULL
}
File=fopen(Filename,"r"); // 检查文件是否存在
if (File) // 文件存在吗?
{
fclose(File); // 关闭文件
return auxDIBImageLoad(Filename); // 载入位图并返回位图的指针
}
return NULL; // 若载入失败则返回NULL
}
结果调试提示:
Compiling...
StdAfx.cpp
c:/gamelib/graph.h(38) : error C2143: syntax error : missing ';' before '*'
c:/gamelib/graph.h(38) : error C2501: 'AUX_RGBImageRec' : missing storage-class or type specifiers
c:/gamelib/graph.h(38) : error C2501: 'LoadBMP' : missing storage-class or type specifiers
Error executing cl.exe.
OGLFrm.exe - 3 error(s), 0 warning(s)
奇怪了?我的程序以前在我的电脑是编译是没有这个问题的,怎么现在就有问题了呢?而且我已在Graph.cpp文件的前面加上glaux.h了呀,也在Setting中的Link中添加glaux.lib 了,可就是不行,老是出现上面问题,想了半天,最终想到我的glaux.lib可能版本有问题,我的系统已经重装过,但是网上重下了几个也不能解决这个问题,也不知道原来是那个版本了,最后想了一个办法,我查看了AUX_RGBImageRec的定义
typedef struct _AUX_RGBImageRec {
GLint sizeX, sizeY;
unsigned char *data;
} AUX_RGBImageRec;
于是重新定义了一个结构体 RGBImageRec,
typedef struct _RGBImageRec {
GLint sizeX, sizeY;
unsigned char *data;
并且重写了LoadImage(char *Filename)函数,将输出auxDIBImageLoad(Filename) 输出强制转换为 RGBImageRec* 型,结果成功了。
RGBImageRec*LoadImage(char *Filename) // 载入位图
{
FILE *File=NULL; // 文件句柄
if (!Filename) //文件名已给了吗?
{
return NULL; // 若没有则返回NULL
}
File=fopen(Filename,"r"); // 检查文件是否存在
if (File) // 文件存在吗?
{
fclose(File); // 关闭文件
return (RGBImageRec*)auxDIBImageLoad(Filename); // 载入位图并返回位图的指针
}
return NULL; // 若载入失败则返回NULL
}
第一次在CSDN写文章,希望能给人以帮助,请获得过帮助的请顶一下我的贴,谢谢!
我的程序定义了如下一个函数
AUX_RGBImageRec *LoadImage(char *Filename) // 载入位图
{
FILE *File=NULL; // 文件句柄
if (!Filename) //文件名已给了吗?
{
return NULL; // 若没有则返回NULL
}
File=fopen(Filename,"r"); // 检查文件是否存在
if (File) // 文件存在吗?
{
fclose(File); // 关闭文件
return auxDIBImageLoad(Filename); // 载入位图并返回位图的指针
}
return NULL; // 若载入失败则返回NULL
}
结果调试提示:
Compiling...
StdAfx.cpp
c:/gamelib/graph.h(38) : error C2143: syntax error : missing ';' before '*'
c:/gamelib/graph.h(38) : error C2501: 'AUX_RGBImageRec' : missing storage-class or type specifiers
c:/gamelib/graph.h(38) : error C2501: 'LoadBMP' : missing storage-class or type specifiers
Error executing cl.exe.
OGLFrm.exe - 3 error(s), 0 warning(s)
奇怪了?我的程序以前在我的电脑是编译是没有这个问题的,怎么现在就有问题了呢?而且我已在Graph.cpp文件的前面加上glaux.h了呀,也在Setting中的Link中添加glaux.lib 了,可就是不行,老是出现上面问题,想了半天,最终想到我的glaux.lib可能版本有问题,我的系统已经重装过,但是网上重下了几个也不能解决这个问题,也不知道原来是那个版本了,最后想了一个办法,我查看了AUX_RGBImageRec的定义
typedef struct _AUX_RGBImageRec {
GLint sizeX, sizeY;
unsigned char *data;
} AUX_RGBImageRec;
于是重新定义了一个结构体 RGBImageRec,
typedef struct _RGBImageRec {
GLint sizeX, sizeY;
unsigned char *data;
并且重写了LoadImage(char *Filename)函数,将输出auxDIBImageLoad(Filename) 输出强制转换为 RGBImageRec* 型,结果成功了。
RGBImageRec*LoadImage(char *Filename) // 载入位图
{
FILE *File=NULL; // 文件句柄
if (!Filename) //文件名已给了吗?
{
return NULL; // 若没有则返回NULL
}
File=fopen(Filename,"r"); // 检查文件是否存在
if (File) // 文件存在吗?
{
fclose(File); // 关闭文件
return (RGBImageRec*)auxDIBImageLoad(Filename); // 载入位图并返回位图的指针
}
return NULL; // 若载入失败则返回NULL
}
第一次在CSDN写文章,希望能给人以帮助,请获得过帮助的请顶一下我的贴,谢谢!
相关文章推荐
- unexpected 'class***或error C2501: missing storage-class or type specifiers 错误解决办法
- error C2501: 'GetDocument' : missing storage-class or type specifiers 问题的处理
- 关于dsound.h的问题error C2501: 'DWORD_PTR' : missing storage-class or type specifiers
- error C2501: 'string' : missing storage-class or type specifiers
- error C2501: '_Application' : missing storage-class or type specifiers
- 'IplImage' : missing storage-class or type specifiers
- '_ConnectionPtr' : missing storage-class or type specifiers
- 'HDEVNOTIFY' : missing storage-class or type specifiers
- Vc error C2629: unexpected 'class***或error C2501: missing storage-class or type specifiers
- 简单的问题,用类创建一个对象error C2380: type(s) preceding 'Complex' (constructor with return type, or illegal redefinition of current class-n
- 解决 C++错误 error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CString' (or there is no
- missing storage-class or type specifiers的原因及解决办法
- 有关error C2501: 'WINGDIAPI' : missing storage-class or type specifiers的错误
- 做MFC的时候引用了头文件但VC还是报missing storage-class or type specifiers
- '_ConnectionPtr' : missing storage-class or type specifiers
- The type or namespace name 'Windows' does not exist in the class or namespace 'System'
- 'IplImage' : missing storage-class or type specifiers
- 'HDEVNOTIFY' : missing storage-class or type specifiers
- missing storage-class or type specifiers的解决方法
- warning C4518: '__int64 ' : storage-class or type specifier(s) unexpected here; ignored