• ベストアンサー

regsvr32.exe による DLLの登録について

質問は2つあります。以下、よろしくお願いします。 1.通常DLLはレジストリに登録しなくても使用できますが、どういう場合に登録が必要なのでしょうか? 2.regsvr32 xxx.dll を実行したところ、以下のようなエラーとなってしまいました。正しく登録するにはどうしたらいいのでしょうか? xxx.dll は読み込まれましたが、DllRegisterServer エントリポイントが見つかりませんでした。このファイルが登録されていない可能性があります。 以上、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

ちょっと違うかもしれないけど 大雑把にいうと 特定のソフトだけでなく他のソフトでも共通で使われるかもしれないモノは、登録が必要な事が多い 『エントリポイントが見つかりませんでした』ってことは、登録する必要がないってことです

masair
質問者

お礼

ありがとうございます。 なるほど登録する必要がないのですね。 登録できるのは, ActiveXのDLLということでしょうか?

その他の回答 (2)

  • necomimi3
  • ベストアンサー率40% (124/307)
回答No.3

>これは「前者」になるのでしょうか? そうなりますね

  • necomimi3
  • ベストアンサー率40% (124/307)
回答No.2

DLLにはいくつか種類があって ソフトが必要なときにそのつど自分でLOADして使う方法と Windowsが起動したと同時にLOADされてメモリに常駐して いつでも使うことのできるものがあります。 上記の理由でDLLの作り方が違うのでエントリポイントを持たないもの(前者)と持つもの(後者)があります。 ※厳密にはそう簡単に括れないですが( ゜∀゜)

masair
質問者

お礼

ありがとうございます。 問題のDLLは自分でつくったものですが、ソフト(アプリ)がインポートライブラリでリンクするものですが、これは「前者」になるのでしょうか?

関連するQ&A

  • dllファイルをレジストリ登録できない

    Windows Vistaを使っています。 あるdllファイルがありまして、 そのファイルをレジストリ登録したいと思っております。 Windows XPでは正しくレジストリ登録できたdllのファイルなのですが、 Vistaで実行するとエラーとなってしまいます。 Vistaでの実効手順は以下の通りです。 (1)C:\WINDOWS\system32\cmd.exeを管理者権限で実行 (2)regsvr32 ~~.dllを実行 (2)を実行すると添付ファイルのメッセージが表示されてしまいます。 私なりに調べてみまして、 (1)を管理者権限で実行すること。 (2)でdllファイルをフルパスで指定して実行すること。 の2点は試しましたが、結果は同じでした。 何かほかに考えられることはございませんか? 解決できそうな案を、ご提示いただければ、私が確かめます。 ぜひご教示お願いいたします。

  • VB2008でのDLL作成方法について

    はじめまして、はじめて投稿します。 初心者なので変な質問をしていたらすいません。VB2008を使用しています。 VBで作成したDLLファイルをLabviewで使用したいと思っています。 ただVB6.0でActiveX DLLを作成する方法はわかるのですが、VB2008で作成する方法がわかりません。 クラスライブラリでプログラムを作成し、DLLにすることはできるのです・ しかしレジストリに登録しようと思い「regsvr32 ファイルのパス**.dll」と入力したところ「**.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした」と出ます。 調べてもVB2008でのActiveX DLL作成方法が見つからなくて困っています!!! わかるかた、よろしくお願いいたします。

  • DLLをREGSVR32しないで利用する方法について。

    こんにちは。 Visual Basic 6.0でActiveX DLLを作成しました。 REGSVR32で登録して正常に利用できていますが、 レジストリを使わないで動かしたいと思っています。 フリーソフトではレジストリを使わないで動かせるものがありますが、あのようにするにはどうすればよいのでしょうか。 基本的には、exeファイルとdllファイルを同じフォルダへ置いて動けば良いと思っています。 調べるとLoadLibraryを使えば出来そうに書かれていますが、ご存知の方アドバイスを宜しくお願い致します。

  • WSHでのレジストリィ登録

    コマンド"regsvr32 xxx.dll"で実行するレジストリの登録をWindows Script Host(WSH)で実行することは可能でしょうか?

  • indeoRの登録について

    会社で支給されたVistaパソコンにて動画再生ができず 色々調べた結果indeoRの登録が必要と思い  regsvr32 ir50_32.dll というコマンドを打ちました。 すると 「モジュールir50_32.dllは読み込まれましたが、  DllRegisterServerへの呼び出しはエラーコード  0x8000ffffにより失敗しました」 と出てきました。 エラーコードを検索してもいまいちよくわかりません。 どうしたら登録できるか教えてください。よろしくお願いします。

  • regsvr32atl.dll が実行できません

    ウィルスセキュリティをインストールしようとしたところ、HRESULT-2147220473のエラーメッセージが出たため、対応策のregsvr32atl.dllを実行してみましたが、見つからないとのエラーメッセージ。サポートセンターに電話を何度もかけましたが、ずっと話し中。どなたか教えていただけないでしょうか。

  • MIDIのおとが出ない

    MediaPlayerでは通常に音が出るのですが、MIDIの音声は出ません。下記の以前の回答を参考にしてやってみたのですが解決しません。 >スタート→「ファイル名を指定して実行」をクリックして regsvr32 wmp.dll と入力して「enter」を押します。 「DllRegisterServer in wmp.dll succeeded.」 が出たら「OK」をクリックします。 もし↑でファイルが無いようなエラーが出たら regsvr32 wmp.ocx をしてください スタート→「ファイル名を指定して実行」をクリックして regsvr32 quartz.dll と入力して「enter」を押します。 「DllRegisterServer in quartz.dll succeeded.」 が出たら「OK」をクリックします。< この他に解決方法はあるのでしょうか。

  • DllRegisterSeverエントリポイントが見つからない?

    ファイル名を指定して実行にて、regsvr32 Mshtml.dllをすると、DllRegisterSeverエントリポイントが見つかりませんでした。このファイルが登録されていない可能性があります。とのメッセージが出て、IEが立ち上がりません。

  • regsvr32 Shdocvw.dll で 失敗します

    windows Xp SP3 IE6 を使用していて、新しいウインドウが開かなかったり、固まったりするので イベントログをみたら エラー発生アプリケーション iexplore.exe、バージョン 6.0.2900.5512、エラー発生モジュール shdocvw.dll、バージョン 6.0.2900.5512、エラー発生アドレス 0x00034254 と表示されていました。 regsvr32 Shdocvw.dll をファイル名を指定して実行を行うと、 Shdocvw.dll の DllRegisterServer は失敗しました。 戻りコード 0x8002801cと表示が出ます。 regsvr32.exe /u Shdocvw.dll は成功します。その後の regsvr32.exe /i Shdocvw.dll は上記同様の失敗表示が発生します。 urlmon.dll Shdocvw.dll Actxprxy.dll Oleaut32.dll Mshtml.dll Browseui.dll Shell32.dllはそれぞれ成功します。 どなたか再インストールなしに復旧する方法をご教授願います。 よろしくお願いします。

  • DLLのVB6.0から.NETへのアップグレードについて

    お世話になります。 WinXPの環境にて、 VB6.0で作成されたDLLを.NETにバージョンアップさせようとしているのですが、 regsvr32コマンドを使用してDLLを置き換えようとすると、 以下のようなエラーメッセージが出てしまい、実行時もエラーになってしまいます。 ⇒「C:\○○\○○.dll was loaded, but the DllRegisterServer entry point was not found. DllRegisterServer may not be exported, or a corrupt version of C:\○○\○○.dll may be in memory. Consider using PView to detect and remove it.」 DLLを呼び出しているEXEの方は6.0のままなのですが、 そもそもEXEの方も.NETにバージョンアップさせないといけないのでしょうか? 本などで片っ端から調べて見ましたが、技術的に可能なのかどうかも分からない状況で困っています。 原因・解決方法等をご存知の方がいらっしゃいましたら、 どうぞ宜しくお願いいたします。