ページ 11

自動インクルード

Posted: 2006年6月08日(木) 22:04
by C1000
RADでコモンコントロールを作ったときに自動でコモンコントロールのファイルをインクルードしてくれると便利だと思います。デバック時に「・・・をインクルードしました」なんて出れば気づかないことも無いと思います。

Re: 自動インクルード

Posted: 2006年6月08日(木) 23:15
by NoWest
> RADでコモンコントロールを作ったときに自動でコモンコントロールのファイルをインクルードしてくれると便利だと思います。デバック時に「・・・をインクルードしました」なんて出れば気づかないことも無いと思います。
自分で標準ライブラリを改造する勇気があるのであれば、

ライブラリファイルの先頭を

コード: 全て選択

#ifdef _DEBUG
	OutputDebugString(Ex"***.sbpをインクルードしました。\n")
#endif
というようにしておけば取り合えず解決。

Posted: 2006年6月09日(金) 20:17
by C1000
少し勘違いされているようなので詳しく説明します。自分がしたいのはRADツールでツリービューなどを配置したとき自動でapi_commctrl.sbpのファイルをインクルードしてくれると便利だなと思い書きました。

Posted: 2006年6月10日(土) 08:27
by NoWest
> 少し勘違いされているようなので詳しく説明します。自分がしたいのはRADツールでツリービューなどを配置したとき自動でapi_commctrl.sbpのファイルをインクルードしてくれると便利だなと思い書きました。
そういうことですか、すいません(笑

人によっては「勝手に読み込むなよ」ってことになりそうですからオプションで設定できるとなおよさそうですね。

ついでに読み込むライブラリも自分で指定できるようにしておくと便利そうです。

Posted: 2006年6月10日(土) 09:59
by C1000
そうですね。オプションで「自動インクルードを使用する」みたいな設定があったほうがいいですね。

Posted: 2006年6月10日(土) 10:39
by konisi
インクルードするか否かで条件分岐していたら他のファイルをコンパイルする時にも時間がかかりそう。

Posted: 2006年6月10日(土) 11:21
by NoWest
> インクルードするか否かで条件分岐していたら他のファイルをコンパイルする時にも時間がかかりそう。
そうでしょうか?
プロジェクトのインクルードファイルを指定しているidxファイルに#include <hoge>をRADが自動的に追加するだけなのでそんなに遅くならないと思いますが。。。

既にご存知かと思いますが、現状のActiveBasicはプロジェクト全体のファイルサイズが大きくなればなるほどコンパイル時間が格段に遅くなります。

どうせなら、今後標準ライブラリが巨大化することも踏まえて、前もってインクルードされるコードの絶対量を減らし、且つそれらの作業がRAD上においてはプログラマから見えない方が良いのではないかと思います。

突き詰めればボタンコントロールやスタティックコントロールなどのライブラリも読み込むか読み込まないかをRADでコントロールが貼り付けられた時点で判断すればよいと思います。
当然ながらこのような作業には本来#defineと#ifdefや#ifndefを使う方が無難なのですが現行のVer4や次世代Ver5で#ifdefディレクティブでコンパイル時間が短縮されるかどうかは確かめたことがないので何ともいえません。

ってことで今からテストしてみます。

Posted: 2006年6月12日(月) 20:20
by C1000
これからABは早くなるはずので一行で済むコードを追加しても変わらないと思います。

Posted: 2006年6月12日(月) 23:06
by イグトランス
インクルードするかどうか如きでは遅くならないと思います。
実際のコンパイルにかかる時間に比べれば微々たる物でしょう。

ABも分割コンパイルするようになれば少しはコンパイル時間の改善になるでしょう。
きっとそのうちそうしてくれるでしょうと思っています。