我在Visual Studio 2010中編譯和舊的C++ Visual Studio 5項目時出現了一個奇怪的問題。我看不到一個嘮叨的編譯器錯誤,與枚舉「DBTYPE」相關。 .h文件的SNIPPIT下面給出了一些額外的行櫃面的錯誤是從上面來:嘗試在C++ Visual Studio 2010中聲明枚舉時出現奇怪的錯誤
struct CBrowseField;
class CODBCBrowseDlg;
typedef CArray <CBrowseField*, CBrowseField*&> FLDNAMES;
typedef CArray <CString, LPCTSTR > COLNAMES;
enum DBTYPE
{ //this bracket is where all 7 errors point to.
DB_FOXPRO26,
DB_OTHERS
};
我拿到7個錯誤,當我編譯,都說同樣的事情,都指向同一行數。錯誤如下:
錯誤71錯誤C2371:'DBTYPE':redefinition;不同的基本類型d:\ temp \ npc \ print manager - 1 \ core \ blib \ odbcbrowsegrid.h 29 1 npcnt
那麼這裏到底發生了什麼。我檢查並重新檢查了語法。我看起來很好。我已經搜索了整個目錄,看看是否有另一個DBTYPE實例,但沒有。我錯過了什麼?如果它真的被重新定義,爲什麼它不告訴我其他定義在哪裏?
如果將DBTYPE更改爲其他內容,還會出現錯誤嗎? (如DB_TYPE) – Ferruccio
當我更改名稱時,錯誤消失。我不特別綁定DBTYPE這個名字,所以我對改變它沒有任何保留。 – Ultratrunks