- PR -

DLLをロードしているアプリケーションの実行環境

1
投稿者投稿内容
CHX99
会議室デビュー日: 2007/05/18
投稿数: 12
投稿日時: 2008-07-16 19:00
こんにちは。ご存知の方がいらっしゃいましたら、お教えください。

DLLを作成しました。このDLLは、Windowsアプリケーション、Webサービスアプリケーション、コンソールアプリケーションなど、色々なアプリケーションが参照使用します。

このDLLから、今自分を使っているアプリケーションがどの種類のアプリケーションなのかを知ることは可能でしょうか?
Webサービスアプリケーションなのかどうかを判断できるだけでも助かります。

よろしくお願いします。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-07-16 20:24
開発環境は明記して頂かないと・・・
なんのDLLなのか、さっぱりわかりません。

.NETの場合と想定しますが・・・

どの種類か?ってWinとかWebとかDOSとかって判断ですか???
出来ない事はないと思いますが、すごく骨が折れるのではないかと思います。
(やってみた事ないので、想定上の話ですが)

で、簡単に済ませられる別案となりますが・・・

System.Diagnostics.Process.GetCurrentProcess().MainModule
で、ProcessModuleのインスタンスが取得できます。
そしてModuleNameとかFileNameのプロパティを見れば・・・。

AAA.exeから呼ばれたとか、BBB.exeから呼ばれたとか判りますね。

Webアプリ(ASP.NET)ならば、呼び出し元は「aspnet_wp.exe」かなぁ?

とにかく、呼び出し元モジュールの名前で判断するのが楽だと思いますよ。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2008-07-17 04:34
何がしたいかだけれど、僕だったら設定ファイルか Attribute にどんな形式で実行しているかを書くようにするかなー。
main あたりにカスタムアトリビュートっていうのがきれいな気がする。
_________________
かるあ のメモスニペット
CHX99
会議室デビュー日: 2007/05/18
投稿数: 12
投稿日時: 2008-07-17 10:03
くまっちさん、かるあさん、回答ありがとうございます。
今回はくまっちさんの作戦で行こうと思います。

かるあさんの方式だと「DLLを使うアプリ側にAttributeを記述させないといけない」という理由で、今回のこちらでやりたいことからするとNGです。
でも確かにきれいですよね。全部自分でやるような場合だったら、私もこうしたと思います。

本件はこれでクローズさせて頂きます。改めて、ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-07-17 21:51
引用:

CHX99さんの書き込み (2008-07-17 10:03) より:
かるあさんの方式だと「DLLを使うアプリ側にAttributeを記述させないといけない」という理由で、今回のこちらでやりたいことからするとNGです。


 でも、読み込むアプリが増えたり、名称が変わったりすると、DLL 本体に手を入れないといけませんよ?
(そして、「サイド バイ サイド実行」から行くと、本体ごと配布しなければならない)
1

スキルアップ/キャリアアップ(JOB@IT)