LF-DevJourney 2015-05-27 03:05 采纳率: 50%
浏览 1930
已采纳

文件操作,我将文件操作部分的代码放在,myDisplay函数内部就没有问题了。。这是为什么

F:\WORK\opengl test temp\dashBoard.cpp(8) : error C2501: 'fp' : missing storage-class or type specifiers
F:\WORK\opengl test temp\dashBoard.cpp(8) : error C2040: 'fp' : 'int' differs in levels of indirection from 'struct _iobuf *'
F:\WORK\opengl test temp\dashBoard.cpp(8) : error C2440: 'initializing' : cannot convert from 'struct _iobuf *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
F:\WORK\opengl test temp\dashBoard.cpp(10) : error C2143: syntax error : missing ';' before 'if'
F:\WORK\opengl test temp\dashBoard.cpp(14) : error C2143: syntax error : missing ';' before 'if'
F:\WORK\opengl test temp\dashBoard.cpp(18) : error C2143: syntax error : missing ';' before 'if'
F:\WORK\opengl test temp\dashBoard.cpp(22) : error C2501: 'fclose' : missing storage-class or type specifiers
F:\WORK\opengl test temp\dashBoard.cpp(22) : error C2373: 'fclose' : redefinition; different type modifiers
d:\program files\microsoft visual studio\vc98\include\stdio.h(285) : see declaration of 'fclose'
F:\WORK\opengl test temp\dashBoard.cpp(22) : error C2440: 'initializing' : cannot convert from 'struct _iobuf *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
执行 cl.exe 时出错.

instrument board.exe - 1 error(s), 0 warning(s)

#include
#include
#include
static GLubyte Mask[128];

 FILE *fp;

 fp = fopen("mask.bmp", "rb");

 if( !fp )

     exit(0);

 if( fseek(fp, -(int)sizeof(Mask), SEEK_END) )

     exit(0);

 if( !fread(Mask, sizeof(Mask), 1, fp) )

     exit(0);

 fclose(fp);

void myDisplay(void)

{

 glClear(GL_COLOR_BUFFER_BIT);

 glEnable(GL_POLYGON_STIPPLE);

 glPolygonStipple(Mask);

 glRectf(-0.5f, -0.5f, 0.0f, 0.0f);   // 在左下方绘制一个有镂空效果的正方形

 glDisable(GL_POLYGON_STIPPLE);

 glRectf(0.0f, 0.0f, 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;

}

  • 写回答

4条回答

  • 关注

    只有编译部分的代码才可以放在函数外

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型