2012-02-22 191 views
0

虽然错误与others经历的相同,但我的环境完全不同。我实际上试图声明一个常量:Visual C++错误C2143:语法错误:缺少';' 'constant'之前

const long CS_DROPSHADOW = 0x20000; 
const long WS_EX_LAYERED = 0x80000; 

错误报告为两个常量名称。

常量声明位于任何类声明之外的Header文件中。

这里是.h文件看起来像:

#ifndef _ASD_SMARTWINDOW_MAIN_H_TAGXXXMAIH_ 
#define _ASD_SMARTWINDOW_MAIN_H_TAGXXXMAIH_ 

#include "ASDTail.h" //Queue support. 

namespace ASDSmartWindowMaster 
{ 
... 
}; 

class ASDSmartWindowListener 
{ 
}; 

const long CS_DROPSHADOW = 0x20000; 
const long WS_EX_LAYERED = 0x80000; 

//Now comes a bunch of enums... 
enum KLayeredWindowType 
{ ... }; 


class ASDSmartWindow 
{ 
}; 

#endif 
+0

你不应该为你的包括守卫使用[保留名称](http://stackoverflow.com/questions/228783)。 – 2012-02-22 12:39:23

+1

意思是我用_启动ifndef?对不起,这是一个6年的项目,我试图复活,很多可怕的东西在 - - D。 – Axonn 2012-02-22 13:25:12

回答

2

CS_DROPSHADOW和WS_EX_LAYERED在WINUSER.H声明。 验证您是否在声明之前包含它。

+0

这就是它!谢谢! :: - )。 – Axonn 2012-02-22 11:42:55

相关问题