VC error C4430 和 C2533 错误

昨晚调试个程序,被这破问题搞了大半夜。

因为我在 .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

你可能感兴趣的:(VC error C4430 和 C2533 错误)