キッズプレート、パスタおかわり

プログラミングやデジモノについてあれこれ
--.--.-- --:--|カテゴリ:スポンサー広告| コメント(-)

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2006.09.11 12:54|カテゴリ:VB.NETコメント(1)

DLL内で呼び出し元実行ファイルがあるフォルダパスを取得


 VB.NETで実行ファイルがあるフォルダパスを取得するには「Application.StartupPath()」ってもんを使います。この中にはアプリケーションの実行ファイル名を含まないパスが入っています。

Dim MyPath As String
MyPath = Application.StartupPath()

 いたって簡単、ごく普通の使い方ですね。さてここで問題が発生。前回のエントリで紹介したDLLDLL内ではStartupPathが見れません。DLL内でDLLを利用している実行ファイルのパスが知りたい場合はどうすればいいのでしょうか? この場合にはDLL内のメソッドを呼び出したアプリケーションを知る方法が準備されていますのでそちらを利用します。

 アプリケーションを表すクラスは「Assembly」クラスです。メソッド内で呼び出しもとAssemblyを知るためにGetCallingAssemblyというメソッドが準備されています。VB.NETのマニュアルにも使用方法がありますが、私が利用した際に使ったコードは以下のとおり。

Dim PathText As String
PathText = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetCallingAssembly().Location)

 AssemblyクラスのLocationプロパティには対象Assemblyの実行ファイルパスが入っているのでGetDirectoryNameをつかってフォルダ名に変更します。これでDLLの呼び出し元実行ファイルが入っているフォルダパスが取得できます。

 もっと簡単な方法があると思われますが、まあこんなんでどうでしょうか?

ちなみにこちらのページも参考になりますよ
実行中のプログラムのパスを取得する
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
[ 2007/09/02 13:10 ] [ 編集 ]
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

ひらくん Author:ひらくん
どもども、ひらんくんどす。
日々まったり過ごしております。
仕事はDTP関連のスプリクト&アプリケーション開発。
Follow happyscript on Twitter

ブログ内検索



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。