自分で作った dllを VBのソースで登録する方法があったら教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

全くの未検証です。



ぼくは自分のPCの送るに二つのショートカット
C:\WINNT\System32\RegSvr32.exe
C:\WINNT\System32\RegSvr32.exe /u
を用意していて、エクスプローラで登録/解除したいDLLのファイルパスをパラメータに送っています。

ちょっとわけあって、今は実験できないPCでコードを組みましたので、サンプルは実行を一度もしてません。
でも、たぶんこんな感じではないかな?

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

sub test
  Dim lngRet As Long
  Dim strBuff As String * 260
  Dim strPath As String
  Dim strRegExe  As String
  
  'システムディレクトリを得る
  lngRet = GetSystemDirectory(strBuff, Len(strBuff))
  strPath = Left(strBuff, InStr(strBuff, vbNullChar) - 1)
  
  '登録の時
  strRegExe = strPath & "\RegSvr32.exe " & "DLLファイルパス"
  '解除の時
  strRegExe = strPath & "\RegSvr32.exe /u " & "DLLファイルパス"
  
  '実行
  Call Shell(strRegExe)
end sub
    • good
    • 0
この回答へのお礼

ありがとうございます!!!

お礼日時:2002/03/08 11:08

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qオブジェクト(dll)のレジストリ登録について

いつもお世話になっております。

dllの使い方について教えてください。

vb5.0で開発を進めているのですが、
dllを呼び出す際に、レジストリ登録を
しなければいけないのでしょうか?

いくつかのサイトでは、参照設定際すれば、
実行できているようです。。

実行環境では、レジストリ登録しないと
動かない場合があるということでしょうか?

ご教授、よろしくお願いします。

Aベストアンサー

何のDLLか、によるが。

・あなたがVB5.0で作成したDLLを、開発に使ったマシン以外で使う。
→該当するマシンでレジストリに登録する必要があります。

・あなたがVB5.0で開発を行うにあたり使用するDLLを開発に使ったマシン以外で使う。
→VB5.0で参照設定できるのであれば、それと同じ方法で該当するマシンにDLLをインストールすれば同様にレジストリに登録済みとなる事でしょう。

よくわかんなければ次のようにしてみれば良いだろう。コマンドプロンプトを開いて
C:\>regsvr32 hogehoge.dll
これで「Successful」と出ればActiveX DLLだ。エントリポイントが見つかりません云々と言われたらそれはWin32ネイティブDLLという事。登録に失敗して環境を壊すという事はないのでとりあえず登録を試みてみれば良いのではないかな。

現在では大きく分けてDLLは3つある。
・Win32ネイティブDLL:レジストリ登録不要。パスの通った所に配置する。
・ActiveX DLL:レジストリ情報によって呼び出すDLL。レジストリに登録する。インプロセスCOMサーバと言っても差し支えないかもしれないがあるかもしれない。
・Microsoft .Net アセンブリ:レジストリの登録は不要。単純に実行ファイルと同じパスに配置するか、.Netにおけるレジストリといえるグローバルアセンブリキャッシュに登録する。

何のDLLか、によるが。

・あなたがVB5.0で作成したDLLを、開発に使ったマシン以外で使う。
→該当するマシンでレジストリに登録する必要があります。

・あなたがVB5.0で開発を行うにあたり使用するDLLを開発に使ったマシン以外で使う。
→VB5.0で参照設定できるのであれば、それと同じ方法で該当するマシンにDLLをインストールすれば同様にレジストリに登録済みとなる事でしょう。

よくわかんなければ次のようにしてみれば良いだろう。コマンドプロンプトを開いて
C:\>regsvr32 hogehoge.dll
これで「S...続きを読む


人気Q&Aランキング