DLL や ActiveX コントロール (OCX) ファイルなどの OLE コントロールは、登録する必要があります。OLE コントロールを登録すると、プログラムが正しく実行されるように、ファイルの位置と機能を使用して Windows レジストリが更新されます。
Windows、Microsoft Internet Explorer、またはその他のプログラムの問題をトラブルシューティングするには、Regsvr32 ツール (Regsvr32.exe) を使用して OLE コントロールの登録または登録解除を行う方法があります。
たとえば、以下のサポート技術情報では、Windows Update サイトから Wuv3is.dll コントロールを再インストールする前に、Regsvr32.exe を使用して Wuv3is.dll コントロールを登録解除する必要があります。
241122
(http://support.microsoft.com/kb/241122/ja/
)
[製品の更新] をクリックしたときのアプリケーション エラー
コントロールの登録が失敗した場合、または失敗した OLE コントロールの登録をトラブルシューティングする方法に関する開発者向け情報が必要である場合は、以下のサポート技術情報を参照してください。
140346
(http://support.microsoft.com/kb/140346/ja/
)
OLE コントロール登録エラーの原因
Regsvr32.exe は、Microsoft Internet Explorer 3.0 以降、Windows 95 OEM Service Release 2 (OSR2) 以降、および Windows NT 4.0 Service Pack 5 (SP5) 以降のバージョンに含まれています。Regsvr32.exe のインストール先は、System フォルダー (Windows Millennium Edition/Windows 98/Windows 95) または System32 フォルダー (Windows NT/Windows XP/Windows Vista/Windows 7) です。
注: 64 ビット版の Windows オペレーティング システムには、次の 2 つのバージョンの Regsv32.exe ファイルがあります。
- 64 ビット版は %systemroot%\System32\regsvr32.exe です。
- 32 ビット版は %systemroot%\SysWoW64\regsvr32.exe です。
Regsvr32.exe の使用法
RegSvr32.exe のコマンド ライン オプションは次のとおりです。
ソリューションの表示/非表示を切り替えるにはここをクリック ?
Regsvr32 [/u] [/n] [/i[:cmdline]] dllname
/u - サーバーの登録を解除します。
/i - DllInstall を呼び出し、それにオプションの [cmdline] を渡します。/u と共に使用された場合、dll のアンインストールを呼び出します。
/n - DllRegisterServer を呼び出しません。このオプションは /i と共に使用する必要があります。
/s - サイレント モードで実行します。メッセージ ボックスは表示されません (Windows XP および Windows Vista で追加)。
Regsvr32.exe を使用すると、Regsvr32.exe はコンポーネントの読み込みを試行し、その
DLLSelfRegister 関数を呼び出します。この試行が成功した場合、Regsvr32.exe は成功を示すダイアログ ボックスを表示します。試行が失敗した場合、Regsvr32.exe はエラー メッセージを返します。これには Win32 のエラー コードが含まれる場合があります。
詳細については、以下のサポート技術情報番号をクリックしてください。
193625
(http://support.microsoft.com/kb/193625/ja/
)
WinInet のエラー コード (12001 〜 12156)
たとえば、Sample.ocx ActiveX コントロールを手動で登録するには、コマンド プロンプトで次のコマンドを入力します。
c:\regsvr32.exe sample.ocx
Windows Vista 以降での Regsvr32.exe のエラー メッセージ
以下の一覧には、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 ビット モジュールである場合に発生する可能性があります。
Windows Vista より前の Windows の Regsvr32.exe のエラー メッセージ
以下の一覧には、RegSvr32 のエラー メッセージと考えられる原因が記載されています。
ソリューションの表示/非表示を切り替えるにはここをクリック - フラグを認識できません: /invalid_flag
フラグまたはスイッチの無効な組み合わせが入力されました (この資料の「Regsvr32.exe の使用法」を参照)。
- DLL 名が指定されていません。
.dll ファイル名が含まれていません (この資料の「Regsvr32.exe の使用法」を参照)。
- Dll_Name は読み込まれましたが、DllRegisterServer または DllUnregisterServer エントリ ポイントが見つかりませんでした。
指定されている DLL 名は .dll ファイルや .ocx ファイルではありません。たとえば、「regsvr32 wjview.exe」と入力すると、このエラー メッセージが表示されます。
- Dll_Name は実行可能ファイルではないか、またはこのファイルのヘルパーが登録されていない可能性があります。
指定されている DLL 名は実行可能ファイル (.exe、.dll、または .ocx) ではありません。たとえば、「regsvr32 autoexec.bat」と入力すると、このエラー メッセージが表示されます。
- Dll_Name は読み込まれましたが、DllRegisterServer または DllUnregisterServer エントリ ポイントが見つかりませんでした。
指定されている DLL 名はエクスポートされていないか、指定されている DLL 名の破損したバージョンがメモリ内に存在する可能性があります。Pview を使用してファイルを検出し、そのファイルを削除してみてください。
- Dll_Name は自己登録可能でないか、破損したバージョンがメモリ内に存在しています。
たとえば、「regsvr32 icwdial.dll」と入力するとこのエラー メッセージが返されますが、これは Icwdial.dll ファイルが自己登録可能ではないためです。破損したバージョンの Dllname がメモリ内に存在すると考えられる場合は、コンピューターを再起動するか、ファイルのオリジナル バージョンを再度抽出してみてください。Windows NT が搭載されている場合は、Microsoft Windows NT Server 4.0 リソース キットの Kill または Pview ツールを使用する必要がある場合があります。詳細については、サポート技術情報「
197155: 孤立したプロセスを強制終了する方法
(http://support.microsoft.com/kb/197155/ja)
」を参照してください。
- 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 (依存 DLL) がないときに、このエラー メッセージが返されます。
- LoadLibrary("dskmaint.dll") に失敗しました。GetLastError の戻り値: 0x000001f
Winerror.h によると、0x000001f = 31 (ERROR_GEN_FAILURE) は、"システムに接続されているデバイスが機能していません。" という意味です。この動作は、Win16.dll ファイルを登録しようとした場合に発生することがあります。たとえば、「regsvr32 dskmaint.dll」と入力すると、このエラー メッセージが返されます。
- Dll_Name の DllRegisterServer (または DllUnregisterServer) は失敗しました。リターン コード:string
Winerror.h ファイルを検索して、メッセージで指定されている string を探します。
文書番号: 249873 - 最終更新日: 2013年1月29日 - リビジョン: 13.0
この資料は以下の製品について記述したものです。
- Windows Vista Enterprise
- Windows Vista Business
- Windows Vista Business N 64-bit Edition
- Windows Vista Home Basic
- Windows Vista Home Basic N
- Windows Vista Home Basic N 64-bit Edition
- Windows Vista Home Premium
- Windows Vista Starter
- Windows Vista Ultimate
- Windows Vista Business N
- Windows Vista Business 64-bit edition
- Microsoft Windows XP Home Edition
- Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
- Microsoft Windows XP Professional
- Microsoft Windows XP Professional N
- Microsoft Windows XP Home Edition N
- Microsoft Windows XP Tablet PC Edition
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Professional
- Microsoft Windows 95
- Microsoft Windows NT Workstation 4.0 Developer Edition
- Microsoft Windows NT Server 4.0 Standard Edition
- Windows 7 Enterprise
- Windows 7 Home Basic
- Windows 7 Home Premium
- Windows 7 Professional
- Windows 7 Starter
- Windows 7 Ultimate
- Windows 7 Enterprise N
- Windows 7 Home Premium N
- Windows 7 Professional N
- Windows 7 Starter N
- Windows 7 Ultimate N
| kbresolve kbenv kberrmsg kbinfo kbkern32dll KB249873 |
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。