ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

DLLをレジストリに登録しようとしてエラーが出る場合の対処法

ライターさん(最終更新日時:2013/5/8)投稿日:

  • ナイス!:

    11

  • 閲覧数:52114

印刷用のページを表示する

DLLをレジストリに登録しようとして

「モジュール "**.dll" の読み込みに失敗しました。
バイナリが指定されたパスに格納されていることを確認するか、バイナリまたは依存 .DLL ファイルに問題がないかどうかを調べてください。」

というエラーメッセージが出て、登録できない、ということがあります。

 

このエラーが出た環境が、Windows Vista以降の64bitOSであれば、以下の方法を試してください。

 

C:\Windows\SysWOW64フォルダのcmd.exeを右クリック→「管理者から実行」します。

開いたコマンドプロンプトに以下のコマンドを打ちます。

C:\Windows\SysWOW64\regsvr32 登録したいDLLのフルパス名

 

上手く行かない場合は、登録したいDLLをC:\Windows\SysWOW64フォルダに入れて

C:\Windows\SysWOW64\regsvr32 C:\Windows\SysWOW64\登録したいDLL名

としてみてください。

 

これで登録できたと思います。

 

以下は解説です。

登録エラーが発生するのは32bitのDLLを64bitのregsvr32で登録したためです。

64bitWindowsの場合、System32フォルダは、名前がSystem32のくせに中に入っているのは64bitのモジュールです。

32bitのモジュールはSysWOW64フォルダにあります。

逆だろ!と思いますよね?私もそう思います。頭悪いです。

 

さて、スタートメニューからコマンドプロンプトを開くと、64bit版のコマンドプロンプトが開きます。

ここでregsvr32と打つと、名前が32のくせに64bit版のregsvr32が実行されます。

このregsvr32で登録できるのは64bitコンパイルされたdllだけで、32bitのdllは登録できないのです。

32bitのdllを登録するためには32bitのコマンドプロンプトから32bitのregsvr32を実行する必要があります。

これらはSysWOW64の中にありますので、SysWOW64の中のcmd.exeで32bitのコマンドプロンプトを開き、SysWOW64の中の32bit版のregsvr32でdllを登録すればいいのです。

このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

この知恵ノートのライター

グレード

グレード知恵ノートのグレード:1-3

カテゴリマスター

tumura999さん

プログラミング暦35年オーバー、Javaは1.0aからやっています...[続きを見る]

その他の知恵ノート(3件)
Javaにおけるcloneの動作に関す...
Postgresでパスワードを忘れた...
Windows7 XPモードのupdateで0x...

ピックアップ

耳鼻科の先生に聞いた、しゃっ...
  皆さん、しゃっくりってわずらわしいですよね  ある時急に...
厄年について——意外と知られて...
厄年とは何か厄年とは文字どおり災厄に遭いやすいといわれる...
知っておきたい無線LANルーター...
知っておきたい無線LANルーターの知識と選び方iPod touchやPS...
本文はここまでです このページの先頭へ