参照設定??

解決


しお  2004-03-10 10:25:48  No: 112286  IP: [192.*.*.*]

はじめまして。しおと申します。
VBにさわりはじめたばかりの初心者なのですが、
教えていただけますでしょうか。

ActiveXDllやActiveXExeを作成すると、自動的に参照設定に
追加されているようなのですが、これはレジストリに登録されている、
と考えていいのでしょうか。

また、regsvr32 /u コマンドを使用してレジストリ削除を
行おうとしているのですが、消えてくれません。
現在、"Project1"という参照設定がかなりの数になってしまい、
困惑しています…

どなたか、ご教授していただけませんでしょうか
よろしくお願いします。

編集 削除
とろ  2004-03-10 11:05:01  No: 112287  IP: [192.*.*.*]

Visual Basic で dll の作成を行うと
自動的にその dll はレジストリに登録されてしまいます。
それ以降、参照設定の一覧にもその dll が表示されるようになります。

regsrv で削除を行うには、その dll 自体が存在しないとできません。
dll を作成後、レジストリから削除する前に
その dll ファイルを削除してしまった場合には、
regsrv でレジストリから削除するのは不可能です。

直接 regedit でレジストリを開いて削除する
(※レジストリについてあまり知らない場合は危険!)か、あるいは
レジストリの整理をしてくれるようなツールを使いましょう。

編集 削除
魔界の仮面弁士  2004-03-10 11:08:30  No: 112288  IP: [192.*.*.*]

> ActiveXDllやActiveXExeを作成すると、自動的に参照設定に
> 追加されているようなのですが、これはレジストリに登録されている、
> と考えていいのでしょうか。
コンパイル時に登録されます。


> また、regsvr32 /u コマンドを使用してレジストリ削除を
> 行おうとしているのですが、消えてくれません。
「REGSVR32 /U C:\Project1.DLL」は、ActiveX DLLの場合に使います。
ActiveX EXEの場合は、「C:\Project1.EXE /Unregserver」です。

これらのコマンドでは、DLL/EXE内に含まれているGUID情報をもとにして
レジストリ項目の抹消が行われます。そのため、元のファイル
(Project1.DLL とか Project1.EXE とか)が実在していないと、
削除する事は出来ません。

編集 削除
しお  2004-03-10 11:12:20  No: 112289  IP: [192.*.*.*]

早速の回答、ありがとうございます!

>regsrv で削除を行うには、その dll 自体が存在しないとできません。
…そうなんですか。
それならば、逆に考えると、Dllが存在しているときに
regsrv で削除を行うと、参照設定の"Project1"は消えてくれる、
ということですか?(質問ばかりで申し訳ありません。)

>直接 regedit でレジストリを開いて削除する
  ↑これは、私にはかなり敷居が高すぎます。
    もう少し勉強してからにしたいと思います。

編集 削除
しお  2004-03-10 11:17:40  No: 112290  IP: [192.*.*.*]

魔界の仮面弁士様、回答ありがとうございます!

>ActiveX EXEの場合は、「C:\Project1.EXE /Unregserver」です。
…知りませんでした。
Dllも、Exeも、同じやり方でやってしまっていました。

お二方のお話ですと、
①削除するDll・Exeが存在すること
②regsrv  /u・Unregserverを使い分けること

で、削除ができるようですね!
わかりやすい説明、大変ありがとうございました!!

編集 削除