BCCdeveloperでDxライブラリのを用いたソースプログラムを分割したいのですが、
includeはDxLibだけで、externを駆使することで分割することは可能ですか。
無題
Re:無題/分割コンパイル
まず、タイトル「無題」がよくない。「分割コンパイル」とでもすべき。
>externを駆使することで分割することは可能ですか。
可能。
分割コンパイルの例。
VC++ 2010 EE でコンパイルしたんで、BCC でやるときは、
#include "stdafx.h"
は、取り除いてくれ。
あと、Win32 コンソール・アプリにしたんで、
_tmain のとこは、main なり、WinMain なりに書き換え必要か ?
funca.h
>externを駆使することで分割することは可能ですか。
可能。
分割コンパイルの例。
VC++ 2010 EE でコンパイルしたんで、BCC でやるときは、
#include "stdafx.h"
は、取り除いてくれ。
あと、Win32 コンソール・アプリにしたんで、
_tmain のとこは、main なり、WinMain なりに書き換え必要か ?
funca.h
#ifndef __FUNCA_H #define __FUNCA_H extern void funca(); #endiffunca.cpp
#include "stdafx.h" #include "funca.h" void funca() { } // END.test.cpp
// test.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // // #include "stdafx.h" #include "funca.h" int _tmain(int argc, _TCHAR* argv[/url]) { funca(); // 2010(H22)-08-25 追加 return 0; } // END.

Re:無題/分割コンパイル class 編
>ソースファイルを分割するには、クラスの定義が必須なのでしょうか。
クラスの定義は必須ではない。
クラスを使うときは、普通、宣言部と実装部に分ける。
宣言部は .h ファイルに、実装部は .cpp ファイルに書く。
classa.h
クラスの定義は必須ではない。
クラスを使うときは、普通、宣言部と実装部に分ける。
宣言部は .h ファイルに、実装部は .cpp ファイルに書く。
classa.h
#ifndef __CLASSA_H #define __CLASSA_H // // // class TClassA { public: TClassA() {} ~TClassA() {} void func(); }; #endifclassa.cpp
// classtest.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // // #include "stdafx.h" #include "classa.h" void TClassA::func() { } // end.classtest.cpp
// classtest.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // // #include "stdafx.h" #include "classa.h" int _tmain(int argc, _TCHAR* argv[/url]) { TClassA* p = new TClassA(); p->func(); delete p; // 2010(H22)-08-25 追加 return 0; } // end.

Re:無題/分割コンパイル class 編
無題の件、失礼しました。
コメントありがとう御座います。
#ifndefを使うのは今の私にはちょっと敷居が高いように感じるので、もしよかったら使わない場合の
分割コンパイルの例もあげていただけないでしょうか。よろしくお願い致します。
コメントありがとう御座います。
#ifndefを使うのは今の私にはちょっと敷居が高いように感じるので、もしよかったら使わない場合の
分割コンパイルの例もあげていただけないでしょうか。よろしくお願い致します。
Re:無題/分割コンパイル サンプル・プログラム
なんか、一晩たってみたら、サンプル・プログラムがよくない。
せっかく、分割コンパイルした関数を呼んでなかったり、
new したオブジェクトを delete してなかったりしてるので、
追加編集した。
せっかく、分割コンパイルした関数を呼んでなかったり、
new したオブジェクトを delete してなかったりしてるので、
追加編集した。
Re:無題/分割コンパイル class 編
> #ifndefを使うのは今の私にはちょっと敷居が高いように感じるので、もしよかったら使わない場合の
> 分割コンパイルの例もあげていただけないでしょうか。よろしくお願い致します。
#ifndef 使わないだけなら、#ifndef, #define, #endif の行をとっちゃえばいいだけだけど。
#ifndef 等使うのは、複雑に入り組んだプロジェクト時、同じヘッダーファイルが
複数回インクルードされても、多重定義にならないようにするため。
#ifndef..#endif でくくっとけば、インクルードの順番を気にせずにすむ。
今の標準ヘッダーファイルは、みんな #ifndef..#endif でくくってある。
そのうち使うようになるだろうから、#ifndef..#endif 今のところは、
頭の片隅にでも入れておいてください。
> 分割コンパイルの例もあげていただけないでしょうか。よろしくお願い致します。
#ifndef 使わないだけなら、#ifndef, #define, #endif の行をとっちゃえばいいだけだけど。
#ifndef 等使うのは、複雑に入り組んだプロジェクト時、同じヘッダーファイルが
複数回インクルードされても、多重定義にならないようにするため。
#ifndef..#endif でくくっとけば、インクルードの順番を気にせずにすむ。
今の標準ヘッダーファイルは、みんな #ifndef..#endif でくくってある。
そのうち使うようになるだろうから、#ifndef..#endif 今のところは、
頭の片隅にでも入れておいてください。
Re:無題/分割コンパイル
もしかして、一般的な分割コンパイルの仕方じゃなくて、BCC developer 統合環境での分割コンパイルの
仕方 ( プロジェクトへの登録の仕方等 ) をたずねてるのかな ?
仕方 ( プロジェクトへの登録の仕方等 ) をたずねてるのかな ?
Re:無題/分割コンパイル
アタッシュさん
返信が送れてしまい申し訳ないです。
BCCでの分割コンパイルの仕方もいまいちわかりません。
たとえば1から100を合計するプログラムを作成したい場合
以下のmain.cppとsum.cppを同一プロジェクト内に作成し、makeすればよいのでしょうか。
//main.cpp
#include <stdio.h>
#include "sum.cpp"
int main(void)
{
sum();
return 0;
}
//sum.cpp
#include <stdio.h>
int sum(void);
int sum(void)
{
printf("%d\n",(1 + 100) * 100 / 2);
return 0;
}
返信が送れてしまい申し訳ないです。
BCCでの分割コンパイルの仕方もいまいちわかりません。
たとえば1から100を合計するプログラムを作成したい場合
以下のmain.cppとsum.cppを同一プロジェクト内に作成し、makeすればよいのでしょうか。
//main.cpp
#include <stdio.h>
#include "sum.cpp"
int main(void)
{
sum();
return 0;
}
//sum.cpp
#include <stdio.h>
int sum(void);
int sum(void)
{
printf("%d\n",(1 + 100) * 100 / 2);
return 0;
}