基本的な事で恐縮ですが、自分で作ったファイル[DDX.CPP]を
メインファイルにインクルードしようとビルドしたのですが、
[DDX.CPP]で「error C2146: 構文エラー : ';' が、識別子 'DDlnit' の前に必要です。」
というエラーがでました。
インクルードするには何か設定などが必要なのでしょうか?
それともこれは質問以前のエラーでしょうか?
/////// Class_000.h ファイル///////
#if !defined(Class_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_)
#define Class_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_
class Sample;
class Sample
{
public:
Sample(){}
~Sample(){}
void
Hoge();
};
#endif
/////// Class_000.cpp ファイル///////
#include Class_000.h
void
Sample::Hoge(){
}
/////// Main.cpp ファイル///////
#include Class_000.h
int
main(void)
{
Sample Hoge;
}
多重宣言によるコンパイルエラーと仮定して以上のようにしてみては。
#if !defined(Class_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_)
#define Class_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_
//ここに宣言する
#endif
で2重宣言をしないようにしている。
ちなみに ”12345678_9ABC_DEF1_2345_6789ABCDEF01” は GuidGen.exe を使って作った
GUID(グローバルユニーク識別子)。
プロジェクト-->設定-->*.cppを選択反転-->一般-->このファイルをビルドしない のチェックを外す。
あと、VC++が用意するヘッダを見れば参考になる。
ten_bunさん、ありがとうございます。
せっかく教えていただいたのですが、超初心者の私にはさっぱりでして・・・・・・・(-_-;
もうすこし勉強してから出なおさせてもらいます。
ten_bunさん、教えていただいたのに申し訳ありませんでした。
/////// Func_000.h ファイル///////
//宣言子を記述するファイル
#if !defined(Func_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_)
#define Func_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_
void
Func();
#endif
/////// Func_000.cpp ファイル///////
//Func_000.hで宣言された宣言子を定義するファイル
#include Func_000.h
void
Func(){
//実際のコードをここに記述
}
/////// Main.cpp ファイル///////
#include Func_000.h
int
main(void)
{
Func();
}
以前と違うところは、例にクラスの記述を使わなかったところ。
これで、分からないとすれば。
#if !defined(Func_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_)
#define Func_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_
#endif
の部分でしょう。
#if,defined,#define,#endif等のキーワードでヘルプを参照してみて下さい。
Func_000_H__12345678_9ABC_DEF1_2345_6789ABCDEF01__INCLUDED_ は識別子
で、コンパイラが認識する変数みたいなものです。
あと、前にも断ったように、多重宣言によるコンパイルエラーと仮定しているんで
別の原因によるエラーだったら問題は解決しません。
おくればせながら解決しました。
ten_bunさんありがとうございます。
時間は掛かりましたが試行錯誤の結果解決しました。
これからも、どうかよろしくおねがいします。