- - PR -
【VB2005】自作dllの置き場所について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-12-13 19:54
こんちには。gt-fと申します。
別の質問も進行中ですが、両方ともCloseさせます。 同時進行でごめんなさい。 【環境】 OS:WinXP(sp2), VB2005, SQLServer2005 以下の3つのファイルから構成されたVB2005の プロジェクトを担当しています。 VB.exe(vb2005) vb.dll(vb2005で自作したdll) vc.dll(vc++2005で自作したdll) 【やりたいこと】 vb.dll, vc.dllをsystem32直下に配置し、 VB.exe 単体で起動させたい。 【現状】 vc.dllをsystem32直下に置き、 vb.dllを、vb.exeと同じフォルダに配置すれば、vb.exeは起動する。 簡単なことなのかもしれませんが、ずっとはまっています。 どうかご教示ください。 よろしくお願いいたします。 | ||||
|
投稿日時: 2007-12-13 20:09
すみません。補足です。
開発時は、 ・vb.dllは自作のコンポーネントで、vb.exeのフォーム上に 貼り付けて使っていた(コンポーネント名.メソッド名) ・vb.exe から、vb.dll を参照設定していた。 ・vb.dllは、常にvb.exeと同じフォルダに配置していた。 これからvb.exeを配布するにあたり、vb.dllをvb.exeと同じフォルダに 置かせるのもおかしい、と思った次第です。 | ||||
|
投稿日時: 2007-12-13 20:10
VC2005で作成したDLLはCLRですかネィティブですか?
CLRなら、その動作は仕様どおりです。.NETでDLLを検索するときにはパスの通っているディレクトリではなく、GACを検索します。したがって実行ファイルと同じディレクトリにDLLを置くか、GACにDLLを登録するしかありません。 | ||||
|
投稿日時: 2007-12-13 20:18
CLRかネイティブかは分からないのですが、
「Win32プロジェクト」として作成したものです。 VCで作成したDLLは、system32直下に配置すれば、 VB.exeからは認識されています。 VB.dllをsystem32直下に配置したいのですが、 VC.dllの(CLR/ネイティブ)が関係してくるのでしょうか。 | ||||
|
投稿日時: 2007-12-13 20:43
VB2005ではネィティブなDLLは作れないので、GACに登録するか、アプリケーションと同じディレクトリに置くしかないですね。
| ||||
|
投稿日時: 2007-12-13 21:12
甕星様
ありがとうございます。大変助かりました。 ちょうど今、参考になりそうなサイトを見つけました(2003年の記事) http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_03.html アセンブリがGACで見つからない場合、アセンブリのコードベースを参照する とのことです。 コードベースは「アプリケーションのファイル名.config」ファイルで指定できる らしいです。 しかし、VB2005では、そのようなファイルが見つからなかったので、 アプリケーションと同じディレクトリに置こうと思います。 とても勉強になりました。どうもありがとうござました。 | ||||
|
投稿日時: 2007-12-14 09:17
gt-fさんが作らなければ当然見つかりません。 テキストエディタで作ってもいいですし、VisualStudioであればプロジェクトへの新しい項目の追加で"アプリケーション構成ファイル"というものを追加してもいいです。 |
1