• ベストアンサー

巨大アプリケーションの開発

開発環境:VC++6.0, MFC 私はデスクトップアプリケーションを開発しています。 開発当初から、ウィザードを使用して"MFC AppWizard (exe)" プロジェクトをつくり、開発をつづけてきましたが、 ソースファイルが膨大になってきたので、プロジェクトで 管理するファイル(ソースファイル、リソースファイルなど) を整理したいと思っています。整理するにあたり次の2点を おこなう予定です。 1.ソースファイルを機能別のフォルダに分ける。 2.リソースファイルも機能別に複数のファイルに分割する。 ここで疑問があります。1と2をおこなった場合、VC++6.0 ではフォルダに分けられたソースファイルや複数のリソース ファイルを管理することができるのでしょうか?例えば、 a)ソースファイルをプロジェクトに追加する場合、 プロジェクトファイルが置いてあるフォルダよりも2・3層下 のフォルダ内にあるソースファイルでも追加可能か? b)メニューから新規にクラスを作成した場合、任意の フォルダ(新規クラスに該当する機能のフォルダ)に保存する ことが可能か? c)複数のリソースファイルをプロジェクトに追加し、 個々のリソースファイルを編集することができるか? d)クラスウィザードを使ってイベントの追加ができるか? a)~d)ができないのであれば、みなさんは巨大な アプリケーションを開発する場合どうしていますか? リソースファイルの編集以外は、VC++6.0を使わずに コマンドラインからコンパイルやリンクをおこなっている のですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • akanekor
  • ベストアンサー率52% (102/194)
回答No.1

最近VC6やってないので昔の記憶です。 a)可能 b)無理。 h cpp 作成後 プロジェクトにファイル追加で c)無理 管理できるrcファイルはひとつだけです。 resource.hなら分けられると思いますが、これだけ分けても無意味ですよね、、。 d)ってc)が前提条件ですよね。 なので無理 規模次第ですが、画面単位か機能単位で dll化を図ってみてみては どうでしょうか? それなら無理なくa)~d)が可能かと思います。 まあ、、、どんなでかくても、VSS管理で、強行でも、、。

pugoo
質問者

お礼

ご回答ありがとうございました。 機能単位のDLL化が良さそうですね。今度挑戦してみます。

その他の回答 (3)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.4

>VS2003ならdevenv.comコマンドですがVC6で出来るかは分かりません。) VC6だとMakefile生成できるので、これでコマンドラインからコンパイル可能です。 .NETではMakefile生成機能なくなりましたが。

pugoo
質問者

お礼

ご回答ありがとうございました。 私もMakefileの生成機能のことは知っていましたが、 全く利用したことがありませんでした。多分、今後も 利用しないでしょうね。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

>a)ソースファイルをプロジェクトに追加する場合、 >プロジェクトファイルが置いてあるフォルダよりも2・3層下 >のフォルダ内にあるソースファイルでも追加可能か? 結論からいうと可能です。 質問するまでもなく実際やってみればすぐにわかると思いますが・・・ b) 可能です。ファイルの場所指定に「変更」というボタンがあるでしょう。 C) リソースファイルの中にリソースファイルを複数includeすることは可能ですが VS付属のリソースエディタはちょっとお粗末な為、リソースエディタからは 編集出来ないかもしれません。その場合直接 リソースファイル(.rc)をテキストエディタ等で編集する必要があります。 d) クラスビューから例えばCWndを継承したクラス等に対しては可能でしょう。 私はクラスウィザードはあまり使わないので 詳しくは知りませんが。 >VC++6.0を使わずに >コマンドラインからコンパイルやリンクをおこなっている >のですか? そうする人もいるでしょうが、好みの問題です。 例えばエディタでemacsとか使っている人はわざわざVS2003.netを開くと重いので コマンドラインでコンパイルする人もいます。 (コマンドラインでも単にプロジェクトファイルを指定するだけです。 VS2003ならdevenv.comコマンドですがVC6で出来るかは分かりません。) リソースファイルもプロジェクトファイルもただのテキストです。 dll化はソース管理の為の手段ではありません。 それにdllに切り分けるのは、それなりの手間が かかると思います。 フォルダをわけるだけなら、単にファイルを移動して プロジェクトファイルをテキストエディタで 編集するだけで済むと思います。

pugoo
質問者

お礼

ご回答ありがとうございます。 > dll化はソース管理の為の手段ではありません。 > それにdllに切り分けるのは、それなりの手間が > かかると思います。 確かにそのとおりです。dllに分けるには手間が かかりますね。

  • yosi_yosi
  • ベストアンサー率35% (165/468)
回答No.2

#1さんのおっしゃるように、大きくなる場合にはDLLで機能を分割します。この場合のメリットは、A.exeという実行ファイルとB.exeという実行ファイルがあった場合、Cという処理が共通で必要な場合にC.dllにCという処理を作成しておけば、A.exeからもB.exeからも使うことが出来ます。(プログラムのサイズも、A.exeとB.exeがそれぞれCという処理を持っている場合よりも小さくなります。)

pugoo
質問者

お礼

ご回答ありがとうございます。 今は開発しているアプリケーションが1つしか ありませんので、ご回答いただいた内容のように、 他のアプリケーションでもC.dllを共有するメリットは ありません。ただ、開発中のアプリケーションだけ 利用するdllでも、機能別にプロジェクトが分けられて いればメリットがあると考えます。

関連するQ&A