2012-08-08 21 views
5

C++/OpenGL'de Eclipse CDT'de bir oyun geliştiriyorum ve derler ve iyi çalışır, ancak bazı nedenlerle bildirdiğim bir enum (SCREEN_MAIN_MENU) altı çizilir kırmızı dalgalı çizgilerle vurgulanır ve vurgulanırsa Sembol SCREEN_MAIN_MENU çözülemedi. Bu açık bir yalan, onu tanımak için Eclipse'i nasıl alabilirim?Eclipse CDT C++ enum "çözümlenemedi"

Screens.h:

#ifndef SCREENS_H 
#define SCREENS_H 

enum { 
SCREEN_MAIN_MENU, 
SCREEN_LOADING, 
SCREEN_GAME 
}; 

class Screen{ 
public: 
    static void change(int screen); 
    static void render(); 
}; 

#endif 

Screens.cpp:

#include "screens.h" 
#include "gui.h" 
#include "global.h" 

extern Global global; 

void Screen::change(int screen){ 
    global.screen = screen; 
} 

void Screen::render(){ 
if(global.screen == SCREEN_MAIN_MENU){ //HERE ARE THE RED SQUIGGLES!!!?? 
    global.text_renderer.print("Sidona", global.screen_width/2-40, 
    global.screen_height-25); 
    Gui::render(); 
    } 
} 

cevap

13

Bu

yani Eclipse CDT bir hata neden olabilir: dizini yeniden oluşturmak için

https://bugs.eclipse.org/bugs/show_bug.cgi?id=356057

Try (Sağ proje üzerinde tıklayın -> Ana Sayfa -> Yeniden)

+0

Teşekkürler, işe yaradı (Juno'ya güncelledikten sonra) –

+0

Sorunumu çözdüm. Teşekkürler! – Hei

0

Enum için adlandırılmış türü oluşturma denediniz mi?

enum SCREEN_TYPE { SCREEN_MAIN_MENU, SCREEN_LOADING, SCREEN_GAME }; 
+0

evet, bunu denedim ve aynı zamanda typedef enum {...} SCREEN_TYPE denedim ve her ikisi de aynı sorunla karşılaşıyor –

+0

Ancak önerilerinizi yaparsam ve sonra kullandığımda SCREEN_MAIN_MENU'yu SCREEN_TYPE :: SCREEN_MAIN_MENU ile değiştirdiğim enum, kırmızı dalgalı çizgiler C++ KODUN GEÇERLİ OLMADIĞINI KESİN! –

+0

Bu durumda çalışıyor mu? – Sindico

İlgili konular