gccでリソースファイルを使わない意味は?

このQ&Aのポイント
  • リソースファイルを使わない意味とは何でしょうか?
  • リソースファイルの使用有無によるメリットとデメリットについて
  • リソースファイルを使わないことでの体験談やアドバイスはありますか?
回答を見る
  • ベストアンサー

gccでリソースファイルを使わない意味は?

環境はgccで幾つかツールを作る時の事を考えてます。 リソースファイル(画像ファイルを除くリソースヘッダー、リソーススクリプト等。以下同様です)を使わない意味は、あると思いますか? あるなら、リソースファイルを使わないようにした時、感じられる或いは考えられる、メリット・デメリットは何ですか? リソースファイルを使わない事での、体験談等ありませんか? 以下に対するアドバイス等はありませんか? 僕が今思っているメリット・デメリットはこの主にこの4つです。 ・ボタン等コントロールを自前で描くことで、考えた物を細部まで作り込みやすい。 ・リソースファイルを気にしなくていい。 ・値保存用の変数が多くなるので、ソースが読みにくく、書きにくくなったり、ロジックが増えたりする。 ・自分で書いたロジックが増える分、処理を考えたりする事が増える事がある。 リソースファイルの事をあまり知りませんがよろしくお願いします。(使った事はあります)

noname#211865
noname#211865

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

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

リソースファイルをレイアウトだけに使って全部オーナードローするって手もあります。 あるいはリソースファイルを使わず全コントロールをCreateWindowするという手もあります。 どうやろうと自由ですが面倒なのは避けたいですよね。 まぁ、その着地点をどうするかです。 それと仕事だとか公開するライブラリやソースだと理解しやすいかを最大限に考慮する必要があります。

noname#211865
質問者

お礼

ご回答ありがとうございます。 オーナードローで苦労した事あって、その反動で必要な変数・データを好きに使いたいとか、あるかもしれないと思いました。 ライブラリやソースの理解のし易さはその通りだと思います。相手や自分の利益を守ったり利益を出すのに大切ですよね。

その他の回答 (3)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

Windowsのリソースのことであれば、マルチプラットフォームの開発を行う場合は使わないのが基本ですね。 使ったとしてもバージョン情報ぐらいとか。

noname#211865
質問者

お礼

ご回答ありがとうございます。参考になります。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

どうしても嫌なら完全に止めてみれば分かります。すごく面倒ですから。 楽をするためのリソースなので、止めるということは面倒になるというそれだけの事です。 それかウィジットツールのGTK+やQtを使えばWin32のリソースとほぼ無縁には成れます。代わりにGTK+やQtに形式に縛られますが。 ただ、どうやってもexeのアイコンだけはリソースと縁を切れないです。

noname#211865
質問者

お礼

zwiさんご回答ありがとうございます。 GTK+は以前にもやろうとした事があります。これを機にまたトライしてみます。Windowsのリソースファイルなら極力使わないようにする、というのはあまりなさそうな感じなのですかね。

noname#211865
質問者

補足

「完全に止める」とはどういう事かは分かりませんが、質問内容の「リソースファイル」は最近の趣味では、少なくとも最初の苦労を覚悟の上で使ってません。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

そんな風にON/OFFで考えたりは私はしませんね。 リソースで良い所はリソースを使いオリジナリティが欲しければリソースをそのまま使わないだけです。 つまり、あるなし両方のメリットだけを頂きます。

noname#211865
質問者

お礼

ご回答ありがとうございます。 そうですね。特定の言語にこだわる必要が無いという考えと似てると思います。 でも言語によって好き嫌いありますよね。僕にとってはリソースはそれと似た部分があったりします。可視性とか透明性に欠けるというか。よく知らないだけの部分はあるんですけどね。

関連するQ&A

  • c#でcsvファイルをリソースとして読み込むには?

    c#でcsvファイルをリソースとして読み込むには? 222.csvというファイルがあります、 これを「リソースの追加」からResourcesフォルダに入れ、ソリューションエクスプローラーから ファイルの存在を確認するところまではできたのですが、 このcsvファイルの内容を変数に代入できずに困っております。 222.csvがResourcesフォルダに入ると_222.csvというファイル名に変わるので、 以下の記述によって変数に代入できるかと思ったのですが、うまくいきません。 string path = Project1.Properties.Resources._222; 他に正しい記述の仕方があるのでしょうか? アドバイスお願いします。

  • 外部ファイル名を変数で指定できるか?

    JavaScriptで参照する外部ファイルを、ヘッダー部で以下のように記述しています。 <script language="JavaScript" src="Data.js"></script> このsrc=で、指定するファイルを、変数で指定することは可能でしょうか? 試しに <script language="JavaScript"> <!-- var Src_File = "Data.js";  src=Src_File; //--> </script> と記述しても、エラーとなってしまいました。 変数を使いたい理由は、ラジオボタン等を使って、参照する外部ファイルを動的に切り替えたいのです。 よろしくお願いします。

  • 分割ファイルのコンパイル

    $gcc Bprop.c init.c prop.c state.c head.h main.c memory.c read.c -lm -g 以上のように複数のファイルをコンパイルしたら以下のようなエラーが表示されました。 gcc: compilation of header file requested この場合は自分で作成しているヘッダファイルに問題があるのでしょうか?またヘッダファイル内では以下のヘッダを読み込んでいます。 stdio.h string.h stdlib.h math.h time.h ヒントをよろしくお願いします。

  • Emacsでのgccのインクルードパスの設定方法

    こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 gccのインクルードパスの問題により、Emcasのcompileコマンドで、Cのソースファイルをコンパイルするができなくて困っています。 具体的には、CのソースファイルをEmacsで開き、「M-x compile」と入力した後、ミニバッファで「gcc -c test.c」と入力すると、以下のようなコンパイルエラーが表示されます。 ------------------------------------------------------------ gcc -c test.c test.c:1:19: no include path in which to search for stdio.h Compilation exited abnormally with code 1 at Sun Jul 08 18:24:05 ------------------------------------------------------------ どうやら、インクルードパスが設定されていないようです。 ちなみに、test.cは以下のような非常に単純なCプログラムです。 ------------------------------------------------------------ include <stdio.h> int main(void) { printf("Hello!\n"); return 0; } ------------------------------------------------------------ コマンドプロンプトや、ktermといった端末から、同じように gcc -c test.c というコマンドを実行すると、エラーが出る事はなく上手くコンパイルできますので、 適切なインクルードパスが設定されているはずです。 どうすれば、Emacsのcompileコマンドから、gccでコンパイルを行う時に使われる、インクルードパスを設定する事ができるのでしょうか? (gccの-Iオプションで、毎回インクルードパスを設定する必要をなくす方法が知りたいです。) では、よろしくお願い致します。

  • パスの設定とかパスを通すって、どうも意味がつかめません・・・

    例えばwindowsで使うgccの扱いで、私は「C言語のe本」というのを読んでいるのですがgccを使えるようにするために ダウンロードしたgcc-2.95-mingw32.zipを展開する時に、展開先をc:\gcc-2.95として展開し、その後windowsXPのコントロールパネル→パフォーマンスとメンテナンス→システム→詳細設定→環境変数→システム環境変数からPath→そこに;c:\gcc-2.95\binを追加してOKとのことで 確かにその通りにしたらコマンドプロンプトでgccと入力するとなんか答えてくれるようになりました。 でも、これがどういうことか意味がわからなくて気持ち悪いです。そもそもbinというのをなんで指定してるのかが何か分からないし、パスを通すって何をしたんだろうと。 それからFreeMat(MatLabと互換性があるフリーソフト)も興味からいじっているのですが、Path toolというものでパスを設定するようです。それを起動するとディレクトリを追加するような画面が出てきます。パスって何かを知っていれば適切なディレクトリを選択できると思いますし、結局、「パスを通す」って何かわからないので全然応用がきかないんです。 このあたりのこと詳しい方がいたら教えていただけませんか? ちなみに「c言語のe本」では、「インストールしたgccが、どこにあるのかコンピュータに教えてあげるための作業だ」と書いてあって、意味がわかりませんでした(汗)

  • GCCの#includeパスの設定方法?

    RedHat Linux 8.0をインストールしています。adaptec社のAHA1542を使いたいのですが、自動認識してくれません。 色々調べた結果、/etc/modules.confに alias scsi_hostadapter aha1542.o を記述する事で、使用可能と言う事がわかりました。 しかし私のシステムでは、aha1542のソースとヘッダーファイルはありますが、オブジェクトがありません。 GCCにてコンパイルさせたら、大量のエラーメッセージが出力されます。ソースを見ると、 1) #include <linux/******.h> 2) #include <asm/*****.h> 3) #include "*****.h" と3種類の#include文があります。 3)は、ソースと同一ディレクトリーでOKだと思いますが、他の2種類のパスの設定方法がわかりません。 <linux/ <asm/ の部分を自分のシステムに合ったパスに置き換える(GCCに認識させる)には、どうすれば良いのでしょうか? どうか、宜しくお願い致します!

  • システムリソース不足ってなに?

    グラフィック系の複数のアプリケーションで 作業しているときに以下のメッセージがよくでます。 「システムリソースが極端に不足しています」 アプリを閉じて、一つのアプリにしぼって作業しても たまに同様のメッセージがでます。 どうすれば解消されるでしょうか? PCスペックは以下の通りです。 OS:Windows95 Pentium (2) 233 メモリ:95MB システムリソース:58%の空き (メーラとインターネットブラウザ使用時) ファイルシステム:32ビット 仮想メモリ:32ビット 各ドライブの空き領域:500MB~1GB よろしくお願いします。

  • C言語のヘッダーファイルの意味と使い方

    現在、C言語を学習ちゅうです。以下のヘッダーファイルの意味と使い方、後、読み方も教えて下さい。 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <tchar.h> #include <ctype.h> #include <string.h> 後、カウンター変数の意味と使い方も知りたいです。

  • tagプロパティについて

    VB6でtagプロパティを使う意味(メリット・デメリット)が知りたいです。 コントロール.tag = コントロール.text のようなソースを見て、ローカル変数でも良いような気ががして不思議に思いました。

  • スクリプト外部ファイルを変数で指定する方法

    スクリプト外部ファイル(例えば、bbb.js)をhtml内へ読込むには、 <script language="JavaScript" scr="bbb.js"></script> と書く事を知りました。 ファイル名を変数(aaa="bbb.js")に入れて、変数aaaで読込む方法を教えて下さい。 次のように、変数aaaにファイル名bbb.jsを代入して、読込みたいのですが、動作しません。 <body> <script language="JavaScript"> aaa=location.search; aaa=aaa.substr(1,(aaa.length - 1)); </script> <script language="JavaScript" src=aaa></script>

専門家に質問してみよう