resource.hへのパス – プログラミング – Home

通知
すべてクリア

[解決済] resource.hへのパス


え~いち
 え~いち
(@え~いち)
ゲスト
結合: 19年前
投稿: 78
Topic starter  

WinXP SP2
VC++6.0 SP%

久しぶりにMFCを使用してダイアログベースのアプリケーションを作成しました
このアプリケーションは日本語表記なので、OSのロケールが日本語以外の場合に、英語表
記のリソースDLLを読み込むようにしました
このとき、アプリケーションのプロジェクト内にあるresource.hの定義と、リソースDLL
内にあるresource.hの定義は共通なので、リソースDLL内のresource.hを削除して、*.rcの

#include resource.h

と記載してあるところを手書きで、アプリのresource.hを参照するように

#include ..\dlgApp\resource.h
(アプリとりそーすDLLは並列したフォルダにおかれているので、
上記の相対パスでresource.hが見つかります)
と、相対パスで記述しました
この状態でビルドすると期待通りの動作をしてくれるのですが、リソースDLLのプロジェ
クトを開いて、リソースを編集すると

#include ..\dlgApp\resource.h

の表記が
勝手に

#include resource.h
と戻ってしまいます
これを防ぐ方法はないでしょうか?


引用未解決
トピックタグ
かか
 かか
(@かか)
ゲスト
結合: 18年前
投稿: 6
 

多分ないです。
そもそもrcファイルはIDEのリソースエディタを使った時点で
再編集されてしまう物です。勝手に書き換えは出来ないでしょう。
多分、リソース周りで言われているような事はIDEを使って
リソースを編集するようなプロジェクトではできないと思います。
テキストベースでやるとか言われているような事をする為の
機能があるリソースエディタを探して使えば話は別かもしれませんけれど。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

リソーススクリプトファイルの中を見て見たんですが、
最初の行に

//Microsoft Developer Studio generated resource script.

と書いてあります。
と言うことは多分、かかさんが言われているように
IDEが生成しているファイルと言う事になるので
言われているような事は出来ないと私も思います。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

resource.h に共通のヘッダを取り込むことならできます。
メニューの[表示]-[インクルードファイルの設定]を見てみてください。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

> メニューの[表示]-[インクルードファイルの設定]を見てみてください。

おおっ、ここで色々弄れそうですね。
私も色々実験してみます。
良い話を聞きました。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

実験結果。

メニューの[表示]-[インクルードファイルの設定]で
シンボル用のヘッダーファイルの部分のファイル名を書き換えれば、
リソーススクリプト内の物も書き換える事が出来ました。
というか、これでビルドすると訊いてくるので「はい」で答えればいいだけ。
あとはresource.hをインクルードしている所も必要なら書き換えるくらいかな。
ただ、設定しているresource.hがIDEから扱える形式になっていないと
IDEからリソースを弄った時にヘッダーファイルの中がおかしくなるかも。
書き換えてもらいたくない場合は、読み取り専用ヘッダーに入れた方が
良いかもしれませんね。
その辺は考慮が必要かも。
あと、共有するようなヘッダーの場合、あちこちのIDEから編集をすると
内容に矛盾が出てくるかもしれないのでそっちの方が心配ですね。
まあ、追加でヘッダーファイルを追加した場合でも
元々のresource.hの中身とぶつかる定義があると誤動作の可能性があるから
結構、扱いが難しいかもしれませんね。


返信引用
え~いち
 え~いち
(@え~いち)
ゲスト
結合: 19年前
投稿: 78
Topic starter  

皆さんご意見ありがとうございます

かかさんのおっしゃられることに納得しました

rcファイルはIDEのリソースエディタを使った時点で再編集されてしまう

であれば仕方ないですね

また、dairygoodsさんから教えてもらった方法では狙いが異なるのですが、そういう機能
がVCにあることは知らなかったので今後役立てたいと思います

最後に、PATIOさん、実験までしていただいてありがとうございました

それにしても、リソースDLLにおいては、IDの値がアプリと異なる動作しないわけですか
ら、何とかしてもらいたいものだ・・・マイクロソフトに


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました