2010年12月16日木曜日

[C++] Visual C++でerror C2143: 構文エラー がでた場合の原因と対処

卒研のプログラムで、
  • error C2143: 構文エラー : ';' が '◯◯' の前に必要です。
というエラーが発生。ちょっとハマったのでそのメモ書きです。まず、その原因は次の2つのいずれかです。
  1. ケアレスミス。括弧やセミコロンが抜けているなど
  2. 利用しているクラスが未定義

今回の原因は後者でした。具体的に言いますと以下のような記述のところでエラーがでました。
CString str;
CTest* test; // ←ここでerror C2143

なにがまずいかというと、この状況でのエラーは、「CTestがクラスとして認識されていない」のが原因だったようです。

【解決策】
  • CTestを定義しているヘッダをincludeする
  • プロジェクトのプロパティ→構成プロパティ→C/C++→全般→追加のインクルードディレクトリ にCTest.hが入っているディレクトリを指定する
インクルードディレクトリの設定もうっかり忘れることがありますので、気をつけたいものです。


0 件のコメント:

コメントを投稿