Visual Studio 2010 で古い C++ Visual Studio 5 プロジェクトをコンパイルすると、奇妙な問題が発生します。列挙 "DBTYPE" に関連しているように見える、取り除けないしつこいコンパイラ エラーがあります。.h ファイルの抜粋を以下に示します。エラーが上から発生した場合に備えて、いくつかの行が追加されています。
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': 再定義。さまざまな基本タイプ d:\temp\npc\print manager - 1\core\blib\odbcbrowsegrid.h 29 1 npcnt
では、一体何が起こっているのでしょうか。構文を確認して再確認しました。私にはうまく見えます。ディレクトリ全体を単語検索して、DBTYPE の別のインスタンスがあるかどうかを確認しました。私は何が欠けていますか?本当に再定義されているのなら、他の定義がどこにあるのか教えてくれないのはなぜですか?