- - PR -
別フォルダからのDLL読み込み
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-07 22:24
まだ勉強中の身です。宜しくお願いします。
VB.NETでプログラムを勉強しているのですが、DLLがクラスライブラリでDLLを 作成できることは分かったのですが、そのDLLを別の(詳しくは1つ下のディレクトリ) フォルダに入れて、EXEファイルから読み込みたいのです。 しかし、設定があるのかと思い、いろいろ見てみたのですが、設定するべき ところはなかったので、どうすれば読み込めるようになるのか分からない次第です。 レジストリをいじらないといけないのか?はたまた環境変数をいじるのか? いろいろ考えてみたのですが、答えがでなかったのです。 何か方法はあるのでしょうか?(ありますよね?当然) 宜しくお願いします。 | ||||
|
投稿日時: 2004-02-07 22:39
DLLは起動するEXEから見て以下の場所に配置する必要があります。
1.アプリケーションがロードされたディレクトリ 2.カレントディレクトリ 3.Windowsシステムディレクトリ(system32) 4.Windowsディレクトリ 5.Path環境変数に設定されたディレクトリ であるため、方法としては、 1.EXEとDLLを同じディレクトリに配置する。 2.EXEを起動する際にDLLのディレクトリをカレントディレクトリ として起動する。 3.DLLをsystem32ディレクトリに配置する。 4.DLLをWindowsディレクトリに配置する。 5.Path環境変数にDLLの配置しているディレクトリを設定する。 などが考えられます。 後は、EXEのプログラムの中でカレントディレクトリを DLLの配置したディレクトリに設定(SetCurrentDirectory()?) しても良いです。 | ||||
|
投稿日時: 2004-02-07 22:57
お世話になります。
Karajanです。 下記のように設定ファイルに検索する場所を指定することもできます。 ディレクトリを複数指定する場合は、セミコロンで区切ればOKです。 検索パスに bin/DLLs を指定する場合。 <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin\DLLs"/> </assemblyBinding> </runtime> </configuration> 詳細はMSDNをご覧ください。 | ||||
|
投稿日時: 2004-02-07 22:59
.NET では違います… 最も簡単には、EXEと同じフォルダもしくは、EXEのあるフォルダ直下の、アセンブリ名(DLL名と思ってよいです)と同じ名前のフォルダに配置します。 もっと細かい話は、うーん、記事にもあったと思います、どっかに… | ||||
|
投稿日時: 2004-02-07 23:27
http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_01.html
この辺ですかね。ほかの回も重要ですけど。 基本的には 1.厳密名をつける 2.構成ファイルでdependentAssemblyで指定する。 という手順になります。 同じディレクトリに入れる等(ぞくにいうプローブ)はあくまで簡略化のためのもの、と認識したほうがいいと思います。 ディレクトリを分けなければならないようなレベルなら余計にきちんとすることをすすめます。 | ||||
|
投稿日時: 2004-02-08 19:28
アドバイスありがとうございます。
参考に挙げていただいた、サイトと助言を元に勉強してみます。 |
1