Regsvr32 ツールを使用する方法および Regsvr32 のエラー メッセージをトラブルシューティングする方法

表示されるエラー メッセージがこの資料で説明されていない場合は、TechNet のイベントとエラー メッセージ ページで、詳細なエラー メッセージの説明、推奨される対処、およびその他のサポート リソースを参照できます。 

概要

Regsvr32 は、Windows レジストリ内の DLL や ActiveX コントロールなどの OLE コントロールを登録および登録解除するためのコマンドライン ユーティリティです。 Windows XP 以降のバージョンの Windows では Regsvr32.exe は %systemroot%\System32 フォルダーにインストールされます。


注: 64 ビット版の Windows オペレーティング システムには、次の 2 つのバージョンの Regsv32.exe ファイルがあります。

  • 64 ビット版は %systemroot%\System32\regsvr32.exe です。

  • 32 ビット版は %systemroot%\SysWoW64\regsvr32.exe です。

Regsvr32 コマンドの構文

RegSvr32.exe のコマンド ライン オプションは次のとおりです。

Regsvr32 [/u] [/n] [/i[:cmdline]] <dll 名>

/u - サーバーの登録を解除します。

/i - DllInstall を呼び出し、それにオプションの [cmdline] を渡します。/u と共に使用された場合、dll のアンインストールを呼び出します。
/n - DllRegisterServer を呼び出しません。このオプションは /i と共に使用する必要があります。

/s - サイレント モードで実行します。メッセージ ボックスは表示されません。

Regsvr32 エラーの一般的な解決方法

Regsvr32 エラーが発生した場合は次のいずれかの方法を試します。

  • 方法 1: 管理者特権を持つコマンド プロンプトで Regsvr32 コマンドを再実行する管理者特権を持つコマンド プロンプトを開くには、次の手順に従います。

    Windows 8.1 および Windows 8画面の右端から中央にスワイプし、[検索] をタップします。 または、マウスを使用している場合は、画面の右下隅をポイントして、[検索] をクリックします。 [検索] ボックスに「コマンド プロンプト」と入力し、[コマンド プロンプト] を右クリックし、[管理者として実行] をクリックします。 管理者のパスワードを要求するダイアログ ボックスが表示された場合はパスワードを入力して [OK] をクリックし、確認を要求するダイアログ ボックスが表示された場合は [許可] をクリックします。

    Windows 7 および Windows Vista[スタート] をクリックし、[検索] ボックスに「コマンド プロンプト」または「cmd」と入力して、[コマンド プロンプト] を右クリックし、[管理者として実行] をクリックします。 管理者のパスワードを要求するダイアログ ボックスが表示された場合はパスワードを入力して [OK] をクリックし、確認を要求するダイアログ ボックスが表示された場合は [許可] をクリックします。

    Windows XP管理者アカウントまたは管理者のアクセス許可を持つアカウントでログオンし、コマンド プロンプト ウィンドウを開きます。

  • 方法 2: 32 ビット版の Regsvr32 を使用して 64 ビット版の Windows に 32 ビット版の DLL を登録する64 ビット版の Windows に 32 ビット版の DLL を登録するとエラーが発生する場合は、次の手順を実行します。

    1. 管理者としてコマンド プロンプトを開きます。

    2. 32 ビットの DLL が %systemroot%\System32 フォルダー内にある場合は、%systemroot%\SysWoW64 フォルダーに移動します。

    3. 次のコマンドを実行します。

      %systemroot%\SysWoW64\regsvr32 <full path of the DLL>

Regsvr32 のエラー メッセージ

次の表には、RegSvr32 のエラー メッセージおよび考えられる原因が記載されています。

エラー メッセージ

原因

コマンド フラグ ""%1"" は無効です。 コマンドの使用法を確認してから再試行してください。

オプションの無効な組み合わせがコマンド ラインで Regsvr32.exe に渡されました。

このコマンドは Microsoft Visual Studio OLE ActiveX コントロール プロジェクトが開かれているときだけ有効です。

Regsvr32.exe は Visual Studio により呼び出されましたが、コマンド ラインではモジュールが指定されていません。

モジュールを登録するには、バイナリ名を指定する必要があります。

Regsvr32.exe は、コマンド ラインでモジュールを指定することなく呼び出されました。

コマンド OleInitialize の実行に失敗しました。 コンピューターのメモリが不足している可能性があります。 開いているプログラムを閉じてから、もう一度やり直してください。

Regsvr32 は、必要な COM ライブラリ関数を呼び出す前に COM ライブラリを初期化し、シャットダウン時にライブラリを初期化解除する必要があります。 これらのエラー メッセージが発生するのは、COM ライブラリの初期化または初期化解除の試行が失敗した場合です。

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

コマンド ラインで指定されていたモジュールの読み込みでエラーが発生しました。 エラー テキストは、メッセージの一部として表示されます。

モジュール ""%1"" は読み込まれましたが、%2 エントリ ポイントが見つかりませんでした。\n\n""%1"" が有効な DLL ファイルまたは OCX ファイルであることを確認し、もう一度やり直してください

Regsvr32.exe は、コマンド ラインで指定されているモジュールの必要なエントリ ポイントを見つけることができませんでした。 これは、エントリ ポイントがモジュールから正しくエクスポートされなかったか、モジュールが .DLL または .OCX ファイルではない場合に発生します。

モジュール ""%1"" は読み込まれましたが、%2 への呼び出しはエラー コード %3 により失敗しました。\n\nこの問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。

Regsvr32.exe が、コマンド ラインで指定されているモジュールのエントリ ポイントを呼び出す際にエラーが発生しました。 エラー コードは、メッセージの一部として表示されます。

モジュール ""%1"" は、実行している Windows のバージョンとの互換性がない可能性があります。 モジュールが x86 (32 ビット) バージョンまたは x64 (64 ビット) バージョンの regsvr32.exe と互換性があることを確認してください。

このエラーは、たとえば、Regsvr32.exe が x86 コンピューター上で実行され、コマンド ラインで指定されているモジュールが 64 ビット モジュールである場合に発生する可能性があります。


次の表には、RegSvr32 のエラー メッセージおよび考えられる原因が記載されています。

エラー メッセージ

原因

フラグを認識できません: /invalid_flag

フラグまたはスイッチの無効な組み合わせが入力されました。

DLL 名が指定されていません。

.dll ファイル名を指定していません。

Dll_Name は読み込まれましたが、DllRegisterServer または DllUnregisterServer エントリ ポイントが見つかりませんでした。

指定された Dll 名は .dll または .ocx ファイルではありません。 たとえば、「regsvr32 wjview.exe」と入力するとこのエラー メッセージが生成されます。

Dll_Name は実行可能ファイルではないか、またはこのファイルのヘルパーが登録されていない可能性があります。

指定された Dll 名は実行可能ファイルではありません。 たとえば、「regsvr32 autoexec.bat」と入力するとこのエラー メッセージが生成されます。

Dll_Name は自己登録可能でないか、破損したバージョンがメモリ内に存在しています。

たとえば、「regsvr32 icwdial.dll」と入力するとこのエラー メッセージが返されますが、これは Icwdial.dll ファイルが自己登録可能ではないためです。 破損したバージョンの Dllname がメモリ内に存在すると考えられる場合は、コンピューターを再起動するか、ファイルの元のバージョンを再度抽出してみてください。

OleInitialize に失敗しました (または OleUninitialize は失敗しました)。

Regsvr32 は、必要な COM ライブラリ関数を呼び出す前に COM ライブラリを初期化し、シャットダウン時にライブラリを初期化解除する必要があります。 これらのエラー メッセージが発生するのは、COM ライブラリの初期化または初期化解除の試行が失敗した場合です。 たとえば、Ole32.dll ファイルが破損しているか、正しくないバージョンであることがあります。

LoadLibrary("Dll_Name") に失敗しました。 GetLastError の戻り値: 0x00000485

Winerror.h によると、0x00000485 = 1157 (ERROR_DLL_NOT_FOUND) です。 そのメッセージは、"このアプリケーションの実行に必要なライブラリ ファイルの 1 つが見つかりません。" です。 たとえば、「regsvr32 missing.dll」と入力すると、Missing.dll が見つからない場合は、このエラー メッセージが返されます。

LoadLibrary("Dll_Name") に失敗しました。 GetLastError の戻り値: 0x00000002

Winerror.h によると、0x00000002 = 2 (ERROR_FILE_NOT_FOUND) です。 そのメッセージは、"指定されたファイルが見つかりません。" です。 つまり、依存 DLL が見つからなかったことを示します。 たとえば、「regsvr32 icwdial.dll」と入力すると、Tapi32.dll (依存) がない場合は、このエラー メッセージが返されます。

LoadLibrary("dskmaint.dll") に失敗しました。 GetLastError の戻り値: 0x000001f

Winerror.h によると、0x000001f = 31 (ERROR_GEN_FAILURE) です。 そのメッセージは、""システムに接続されたデバイスが機能していません。" です。 この現象は、Win16 .dll ファイルを登録しようとすると発生するします。 たとえば、「regsvr32 dskmaint.dll」と入力すると、このエラー メッセージが返されます。

Dll_Name の DllRegisterServer (または DllUnregisterServer) は失敗しました。 Return code was: string

メッセージで指定されている string を Winerror.h ファイルで探します。


ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×