Posted on 2011-05-03 04:09
S.l.e!ep.¢% 阅读(926)
评论(0) 编辑 收藏 引用 所属分类:
VC
昨晚调试个程序,被这破问题搞了大半夜。
因为我在 .h 和 .cpp 文件中使用了 static 的类全局变量,需要在类构造前对这些变量进行初始化
view plaincopy to clipboardprint?
Status CXGdiplus::m_uGdiplusStatus = Gdiplus::GdiplusNotInitialized;
ULONG_PTR CXGdiplus::m_ulGdiplusToken = 0;
Status CXGdiplus::m_uGdiplusStatus = Gdiplus::GdiplusNotInitialized;
ULONG_PTR CXGdiplus::m_ulGdiplusToken = 0;
开始的时候 Visual Studio 编译老提示我:
错误 1 error C2143: 语法错误 : 缺少“;”(在“CXGdiplus::m_uGdiplusStatus”的前面) d:\cppcsprjs\gdiplusdemo\xgdiplus.cpp 32 GdiplusDemo
错误 4 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\cppcsprjs\gdiplusdemo\xgdiplus.cpp 32 GdiplusDemo
于是一点点排查,最后几乎把所有的代码都快注释掉了,这次 Visual Studio 提示我:
错误 1 error C2533: “CXGdiplus::{ctor}”: 构造函数不能有返回类型 d:\cppcsprjs\gdiplusdemo\xgdiplus.cpp 41 GdiplusDemo
于是搜索了一下,终于发现原来是我用 UE 敲代码的时候,那个 .h 文件 class 声明结尾的 "}" 之后还有个分号 ";" 被我不小心漏掉了。
折腾了这大半夜竟然是这低级错误,郁闷死。
所以特意把这个贴出来,警示自己不要再犯了 ⊙﹏⊙b汗
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/DavidHsing/archive/2009/10/10/4648770.aspx