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 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。