2012-02-22 189 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

相關問題