vs2012“本地函数定义是非法的”(眼都瞪瞎了也找不到{)

yrfvp 2014-10-12 07:03:43
第一个计算机图形学的c++程序,结果就报错,先上代码:
// TestGULT.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <GL/glut.h>
#include <math.h>

void myinit(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0); //置背景色
glMatrixMode(GL_PROJECTION);//设矩阵模式
gluOrtho2D(0.0, 200.0, 0.0, 150.0); //正交投影窗口
}

void lineSegment(void)
{
glClear (GL_COLOR_BUFFER_BIT); //清除
glColor3f(1.0,0.0,0.0); //绘制颜色为红色
glBegin(GL_LINES); //定义一个OpenGL图元
glVertex2i(180,15);
glVertex2i(10,145);
glEnd();
glFlush(); //清缓冲
}

void main(int argc, char **argv)
{

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(400,300); //窗口大小(列,行)
glutInitWindowPosition(50,100); //窗口左上角在屏
//幕中的位置
glutCreateWindow("An OpenGL program");
myinit();
glutDisplayFunc(lineSegment); //回调
glutMainLoop(); //执行
}


错误如下:
...全文
1131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
0dmin 2017-07-04
  • 打赏
  • 举报
回复
盲僧,可能是少了一个大括号,看看括号是不是匹配!
双杯献酒 2014-10-13
  • 打赏
  • 举报
回复
stdafx.h 改过吗?
赵4老师 2014-10-13
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
Binzo 2014-10-13
  • 打赏
  • 举报
回复
我在我电脑上编译没什么问题。
yrfvp 2014-10-12
  • 打赏
  • 举报
回复
引用 5 楼 Idle_ 的回复:
很明显是头文件造成的,某个头文件中少了一个‘}’或';',如果你没有改过那么可能是预编译头造成的。
应该与预编译头无关,我重新新建了两个项目,同样的代码,两个项目一个选了预编译头,一个没有,结果两个都可以顺利运行成功了,不知为何第一个就不行?
阿呆_ 2014-10-12
  • 打赏
  • 举报
回复
很明显是头文件造成的,某个头文件中少了一个‘}’或';',如果你没有改过那么可能是预编译头造成的。
勤奋的小游侠 2014-10-12
  • 打赏
  • 举报
回复
看你的第二个报错,是不是写多了一个}号。
勤奋的小游侠 2014-10-12
  • 打赏
  • 举报
回复
为什么一定要用lineSegment这样的函数名呢?这个名字有可以是库函数,换一个名字试一试。
碼上道 2014-10-12
  • 打赏
  • 举报
回复
头文件改动过吗?感觉本身没有什么问题
铖邑 2014-10-12
  • 打赏
  • 举报
回复
貌似没什么问题啊,会不会是头文件有冲突?调换一下顺序试试?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧