2013-07-23 63 views
2

下面的代碼編譯完全正常在VC++ 6.0,但是當我打開VS2005項目,我得到這個錯誤:VC++缺少類型說明符 - int假定。注意:C++不支持默認int

BCGPopupMenu.h(100): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

可能是什麼問題呢?

class BCGCONTROLBARDLLEXPORT CBCGPopupMenu : public CMiniFrameWnd 
{ 
public: 
    enum ANIMATION_TYPE 
    { 
     NO_ANIMATION, 
     UNFOLD, 
     SLIDE, 
     FADE 
    }; 

static SetAnimationType (CBCGPopupMenu::ANIMATION_TYPE type) 
    { 
     m_AnimationType = type; // this line gives error 
    } 
protected: 
    static ANIMATION_TYPE m_AnimationType; 

}; 
+2

這可能會得到關閉的重複,而是「SetAnimationType」沒有返回類型。如果你沒有返回任何東西,返回類型是無效的。靜態之後只需添加void。 – Borgleader

+0

謝謝。但我想知道它在早期版本中的工作原理。 – krammer

+0

答案出現在錯誤消息中:'...注意:C++不支持default-int' – iammilind

回答

2
static SetAnimationType (CBCGPopupMenu::ANIMATION_TYPE type) 

沒有返回值,你應該做的:

static void SetAnimationType (CBCGPopupMenu::ANIMATION_TYPE type) 
-2

一個可能的原因是缺少定義。切換IDE時,請確保將所需的每個路徑添加到項目設置中。

見工具>>選項>>項目和解決方案>> VC++目錄

+0

不是這裏的情況。 SetAnimationType沒有返回類型。 – Borgleader

+0

@Borgleader當然,缺少返回類型在這裏是一個錯誤。我只是想提醒一下,當看到缺少類型說明符錯誤時,在VS中檢查路徑設置是很好的。 –

相關問題