首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

error C2143: 语法异常 : 缺少“;”(在“->”的前面)

2013-04-07 
error C2143: 语法错误 : 缺少“”(在“-”的前面)我在运行fltk程序时遇到这个错误:源代码:#ifndef FL_DOXYG

error C2143: 语法错误 : 缺少“;”(在“->”的前面)
我在运行fltk程序时遇到这个错误:


源代码:
#ifndef FL_DOXYGEN
#ifndef Fl_X_H
#  error "Never use <FL/win32.H> directly; include <FL/x.H> instead."
#endif // !Fl_X_H

#include <windows.h>
typedef HRGN Fl_Region;
typedef HWND Window;
typedef POINT XPoint;

#include <FL/Fl_Window.H>


#else
FL_EXPORT Window fl_xid_(const Fl_Window* w);
#define fl_xid(w) fl_xid_(w)
#endif // FL_LIBRARY || FL_INTERNALS

FL_EXPORT Fl_Window* fl_find(Window xid);
void fl_clip_region(Fl_Region);
fl_current_xmap
// most recent fl_color() or fl_rgbcolor() points at one of these:
extern FL_EXPORT struct Fl_XMap {
  COLORREF rgb;// this should be the type the RGB() macro returns
  HPEN pen;// pen, 0 if none created yet
  int brush;// ref to solid brush, 0 if none created yet
} *;
inline COLORREF fl_RGB() {return fl_current_xmap->rgb;}
inline HPEN fl_pen() {return fl_current_xmap->pen;}
FL_EXPORT HBRUSH fl_brush(); // allocates a brush if necessary
FL_EXPORT HBRUSH fl_brush_action(int); // now does the real work

extern FL_EXPORT HINSTANCE fl_display;
extern FL_EXPORT Window fl_window;
extern FL_EXPORT HDC fl_gc;
extern FL_EXPORT MSG fl_msg;
extern FL_EXPORT HDC fl_GetDC(Window);
extern FL_EXPORT HDC fl_makeDC(HBITMAP);


结果是:

f:\cga\fltk-1.3.2\fl\win32.h(108): error C2872: “Window”: 不明确的符号
1>          可能是“f:\cga\fltk-1.3.2\fl\win32.h(39) : HWND Window”
1>          或       “f:\cga\fltk-1.3.2\fl\events.h(222) : fltk::Window”
1>f:\cga\fltk-1.3.2\fl\win32.h(112): error C2872: “Window”: 不明确的符号
1>          可能是“f:\cga\fltk-1.3.2\fl\win32.h(39) : HWND Window”
1>          或       “f:\cga\fltk-1.3.2\fl\events.h(222) : fltk::Window”
1>f:\cga\fltk-1.3.2\fl\win32.h(127): error C2872: “Window”: 不明确的符号
1>          可能是“f:\cga\fltk-1.3.2\fl\win32.h(39) : HWND Window”
1>          或       “f:\cga\fltk-1.3.2\fl\events.h(222) : fltk::Window”
1>f:\cga\fltk-1.3.2\fl\win32.h(130): error C2872: “Window”: 不明确的符号
1>          可能是“f:\cga\fltk-1.3.2\fl\win32.h(39) : HWND Window”
1>          或       “f:\cga\fltk-1.3.2\fl\events.h(222) : fltk::Window”

在另外一个文件中也有window的定义,但我不知道该怎么解决这个问题。上网搜了很多,但和我的这个情况不同,有大神可以帮忙解决一下么?非常感谢 c include
------解决方案--------------------


偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

[解决办法]

引用:
楼主的代码可读性不太好,本身菜鸟的我表示看不懂。。。
额滴孩,您应该说楼主copy的代码可读性不好,呵呵。
另,楼主把include路径放到最后试试?
[解决办法]
你把这个typedef HWND Window;改改行么,定义个window1之类的,或者namespace XXX{typedef HWND Window;}
用的时候,XXX:Window
[解决办法]
引用:
引用:你events.h中定义的窗口句柄名称和win32.h冲突了?
加个命名空间试试

但是它们在同一个命名空间下~~该怎么加呢?

那就再加命名空间

假设a.h 和 b.h 都有Window的声明
然后你a.h必须引用b.h  然后引用又有冲突 那么
在a.h中这么写:
namespace bbbbbbbb{
#include“b.h”
}

热点排行