2012-02-22 2 views
0

Хотя ошибка идентична той, что испытывали others, мое окружение совершенно иное. Я действительно пытаюсь объявить константу:Ошибка Visual C++ C2143: синтаксическая ошибка: отсутствует ';' до 'constant'

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

Сообщается об ошибке для двух постоянных имен.

Объявление констант находится в файле заголовка, вне любого объявления класса.

Вот как файл 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) для своих охранников. –

+1

Смысл, что я начал ifndef с _? Извините, это 6-летний проект, который я пытаюсь воскресить, много страшных вещей в нем :: - D. – Axonn

ответ

2

CS_DROPSHADOW и WS_EX_LAYERED объявлены в WINUSER.H. Убедитесь, что вы не включили его перед своими объявлениями.

+0

Так оно и было! Спасибо! :: -). – Axonn

Смежные вопросы