インクルードファイルをインクルードする方法を教えてください。 – プログラミング – Home

インクルードファイルをインクルードする...
 
通知
すべてクリア

[解決済] インクルードファイルをインクルードする方法を教えてください。


KYOH
 KYOH
(@KYOH)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

基本的な事で恐縮ですが、自分で作ったファイル[DDX.CPP]を
メインファイルにインクルードしようとビルドしたのですが、
[DDX.CPP]で「error C2146: 構文エラー : ';' が、識別子 'DDlnit' の前に必要です。」
というエラーがでました。
インクルードするには何か設定などが必要なのでしょうか?
それともこれは質問以前のエラーでしょうか?


引用未解決
トピックタグ
ten_bun
 ten_bun
(@ten_bun)
ゲスト
結合: 24年前
投稿: 19
 

/////// 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++が用意するヘッダを見れば参考になる。


返信引用
KYOH
 KYOH
(@KYOH)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

ten_bunさん、ありがとうございます。
せっかく教えていただいたのですが、超初心者の私にはさっぱりでして・・・・・・・(-_-;
もうすこし勉強してから出なおさせてもらいます。
ten_bunさん、教えていただいたのに申し訳ありませんでした。


返信引用
ten_bun
 ten_bun
(@ten_bun)
ゲスト
結合: 24年前
投稿: 19
 

/////// 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_ は識別子
で、コンパイラが認識する変数みたいなものです。

あと、前にも断ったように、多重宣言によるコンパイルエラーと仮定しているんで
別の原因によるエラーだったら問題は解決しません。


返信引用
KYOH
 KYOH
(@KYOH)
ゲスト
結合: 24年前
投稿: 5
Topic starter  

おくればせながら解決しました。
ten_bunさんありがとうございます。
時間は掛かりましたが試行錯誤の結果解決しました。
これからも、どうかよろしくおねがいします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました