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;
}
只有編譯部分的代碼才可以放在函數外