公式アカウントからの投稿が始まります

 WindowsAPIで分からないことがあるので尋ねに来ました。
 プラットフォームはVS.NET2003でCで記述しています。
bitmapをリソースに取り込むと自動的にresource.hが作られますよね?
 resource.hをプロジェクト内に作ったフォルダ内に入れて、("../****/resource.h"というふうにして)もう一回ビルドするとbitmapが表示されません。また、フォルダ内から出してそのままヘッダーファイルをインクルードしてもインクルードしてくれません。リソーススクリプト(.rc)の方で何かやらなければいけないのか、どうしたらbitmapが表示されるのか分かりません。
 一応フォルダ内に入れないでそのままヘッダーファイルを読み込むと表示されます。しかし一度フォルダ内にいれて#include "../****/resource.h"とするとbitmapは表示されません。しかも戻して"resource.h"としても今度はERRORで"リソースIDが定義されていません"といわれてしまいます。
どうしてこうなるのでしょうか?

A 回答 (1件)

★アドバイス


・パスが違う可能性が高い。
 リソース・スクリプトでも resource.h をインクルードしています。
 そこでリソース・スクリプトにある include 文にパスを付ければ解決します。

(自動生成時)
project
├resource.h
└sample.rc

(フォルダに移動)
project
├abc/resource.h
└sample.rc

この場合 sample.rc 内にある include 文にパスをつけます。
(#include "abc/resource.h")
このように修正すれば直ります。

ただし、VC++2003 でリソースを修正するとまた元に戻ってしまうため修正するのが
面倒ならば、resource.h と sample.rc を同じフォルダに置きます。(お勧め)

また何かあれば補足して下さい。
    • good
    • 0
この回答へのお礼

早速試してみましたところうまくいきました。
リソースファイルで(#include "abc/resource.h")としただけでERRORも特に起こらず、うまくいきました。(#include "../abc/resource.h")ではダメなんですね。
勉強になりました。ありがとうございます。

お礼日時:2008/10/21 20:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!