「アプリケーションを正しく起動できませんでした(0xc0000142)」エラーを16の簡単な方法で解決する方法
「アプリケーションを正しく起動できませんでした (0xC0000142) 」のようなエラーへの対処は、かなり面倒な場合があります。基本的に、特定のプログラムの起動に必要なDLLファイルがシステムに不足しているか破損していることが原因です。Windowsのアップデート後や新しいソフトウェアのインストール時などにこのエラーが表示されることがあり、通常は正常に動作するはずのアプリが実行できなくなるため、非常に困った問題となります。このエラーの解決は必ずしも簡単ではなく、DLLの修復や置き換え、設定の調整、システムコンポーネントの更新が必要になることがよくあります。幸いなことに、潜在的な解決策はいくつかあり、中には最初に試してみるのに非常に簡単なものもあります。
アプリケーションが正しく起動できない問題を修正する方法
互換モードを試す – 古いアプリは新しいWindowsのバージョンではうまく動作しないことがある
現在のOS向けに設計されていない古いプログラムを実行している場合、この方法で問題が解決します。必要なWindowsのバージョンを正確に把握するのは面倒ですが、実行ファイルを古いWindowsバージョンで実行するように設定するだけで、驚くほどの効果が得られます。少し奇妙に思えますが、一部の環境では、「このプログラムを互換モードで実行する」ボックスにチェックを入れ、Windows 7またはXPを選択するだけで、DLLの読み込みが回復することがあります。保護されたシステムディレクトリにアクセスしようとしている場合など、アプリを管理者として実行する必要がある場合もあります。
- アプリの実行可能ファイル (通常はC:\Program FilesまたはC:\Program Files (x86)内) に移動します。
- 右クリックして、[プロパティ]を選択します。
- 「互換性」タブに移動します。
- 「互換モードでこのプログラムを実行する」にチェックを入れ、以前の Windows バージョンを選択します。
- 「このプログラムを管理者として実行する」をチェックします。DLL アクセスに必要な場合があります。
- [適用]と[OK]をクリックします。
一部のマシンでは、最初は失敗しますが、再起動後には成功します。なぜうまくいくのかは分かりませんが、試してみる価値はあります。
ランタイムパッケージをインストールまたは修復する – 不足しているDLLはこれらのパッケージにバンドルされていることが多いため、
これは非常に単純な問題ですが、見落とされがちです。多くのアプリは特定のランタイムライブラリ(Visual C++、DirectX、.NET Frameworkなど)に依存しており、これらのライブラリが不足しているか破損していると、DLLエラーが発生します。サポートされている最新バージョンをダウンロードしてインストールしてください。既にインストールされている場合は、修復することをお勧めします。
- Visual C++ ランタイム再頒布可能パッケージ
- DirectX エンドユーザー ランタイム
- DirectX 11 テクノロジーアップデート
- .NET Framework 4.5および.NET Framework 3.5
一部のシステムでは、これらのパッケージをインストールするだけでDLLの読み込み問題が解決します。これはよくある原因です。多くの場合、これらのパッケージを修復または再インストールするだけでDLLの整合性が回復します。
システムロケールを変更する – 英語以外のアプリケーションでは、地域を正しく設定する必要がある場合があります
これは、アプリが英語以外の言語で開発されている場合や、特定の国向けに設計されている場合に特に便利です。システムロケールがその地域と一致していない場合、DLLが正しく読み込まれず、エラーが発生する可能性があります。変更は簡単です。
- [実行]ダイアログ ( Win + R)を開き、 と入力し
controlて Enter キーを押します。 - [地域]または[時計と地域] > [地域]に移動します。
- [管理]タブをクリックし、[システム ロケールの変更]をクリックします。
- ドロップダウンから該当する地域を選択し、「OK」をクリックします。
ロケールを変更した後は、必ずPCを再起動してください。特に様々な設定をテストしている場合は、ロケールエミュレーターや地域固有のツールを使用する方が正確だと感じる人もいます。
DLLとOCXファイルを再登録する – レジストリ参照が失われたり壊れたりすることがあるため
これはDLLの破損または欠落したレジストリエントリを修復します。少し古い方法ですが、効果的です。DLLを再登録するとレジストリリンクが再度読み込まれ、起動エラーを修正できます。
- 管理者権限でコマンドプロンプトを開きます(Win + X>コマンドプロンプト(管理者)またはPowerShell(管理者)を選択)
- 次のコマンドを入力し、それぞれの後に Enter キーを押します。
for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i
設定によっては、このプロセスが遅くなる場合があり、すべてのDLLが最初の実行で完全に再登録されない可能性があります。その後、アプリを再起動して、正しく読み込まれるかどうかを確認してください。
アプリケーションを修復する – 個々のアプリの問題がDLLエラーを引き起こす可能性があるため
エラーが1つのアプリだけで発生する場合は、インストールが破損している可能性があります。ほとんどのインストーラーには修復機能が含まれています。アクセスするには、以下の手順に従ってください。
- [実行] ( Win + R)を開き、
appwiz.cplと入力して Enter キーを押します。 - リストから問題のあるアプリを見つけます。
- 右クリックして[修復]または[変更]を選択し、 [修復]を選択します。
指示に従って、DLLの問題が解決するかどうかを確認してください。システムによっては、この手順だけで多くの起動時の問題が解決する場合があります。
セーフモードで再インストールする – クリーンインストールが唯一の方法となる場合もあるため
アプリやDLLの修復を行っても問題が解決しない場合は、アンインストールしてセーフモードで再インストールするという最終手段を検討してください。手順は以下のとおりです。
- 通常通り、 「プログラムと機能」からアプリをアンインストールします。
- セーフ モードで再起動します (Shift キーを押しながら再起動するか、Windows 回復オプションを使用します)。
- 開発者のサイトから新しいインストーラーをダウンロードします。
- インストーラーを実行し、エラーが続くかどうかを確認します。
場合によっては、クリーンな状態に戻すことで、DLLやシステムファイルを破損させる根本的な競合を解消できることがあります。念のためお知らせしますが、少し手間はかかりますが、これが唯一の解決策となる場合もあります。
グラフィックドライバを更新またはロールバックする – 問題のあるドライバはDLLの読み込みに支障をきたす可能性があるため
グラフィックドライバーは、特にNvidiaやAMDのカードを搭載したマシンでDLLエラーを引き起こすことで有名です。ドライバーの更新は簡単です。
- 製造元のサイト ( NVIDIA ドライバー ページやAMD サポートなど) にアクセスします。
- 最新のドライバーをダウンロードしてインストールしてください。
- 再起動してエラーがなくなったかどうかを確認します。
それでも問題が解決しない場合は、ディスプレイドライバアンインストーラ(DDU)などのドライバクリーナーツールをセーフモードで使用して古いドライバを完全に削除し、最新バージョンをインストールしてみてください。奇妙なことに、GPUドライバが古かったり破損していたりすると、DLLの様々な問題を引き起こす可能性があります。
クリーンブートを実行する – サードパーティのソフトウェアが起動時に干渉する可能性があるため
起動時に読み込まれるサードパーティ製のアプリやサービスが、DLL の読み込みを妨げている場合があります。クリーンブートを実行すると、この問題を特定しやすくなります。以下の方法をお試しください。
- 実行()からmsconfigを開きますWin + R
- 「サービス」タブで、「Microsoftのサービスをすべて隠す」にチェックを入れ、「すべて無効にする」をクリックします。
- スタートアップタブに移動し、タスクマネージャーを開くをクリックします。
- すべてのスタートアップ項目を無効にし、タスクマネージャーを閉じます
- PCを再起動してください
エラーが表示されない場合は、サービスとスタートアップ項目を一つずつ再度有効化し、原因を特定してください。原因を特定したら、問題となっているソフトウェアを削除または更新することで、通常は問題が解決します。
マルウェアをスキャンする – ウイルスはDLLにも影響を与える可能性があるため
悪意のあるソフトウェアがDLLファイルを破損または置き換えてエラーを引き起こすことがあります。システム全体のスキャンを実行することをお勧めします。Windows Defenderまたはお好みのウイルス対策ソフトを使用してください。コマンドプロンプトで次のコマンドを実行できます。
MpCmdRun -Scan -ScanType 2
マルウェアはシステム フォルダーの奥深くに隠れている可能性があるため、徹底的なスキャンが必要であることに注意してください。
システムファイルのチェックと修復 – システムの破損によりDLLの読み込みに問題が発生する可能性があるため
SFC /scannowコマンドは、DLL を含む破損したシステムファイルを検出し、修復できます。実行方法は次のとおりです。
- 管理者としてコマンド プロンプトを開き ( Windows ターミナル (管理者)またはコマンド プロンプト (管理者)Win + Xを選択します)。
- 入力
sfc /scannowしてEnterキーを押します。プロセスが完了するまでお待ちください。
問題が見つかった場合、Windows は自動的に修復を試みます。その後、再起動して問題が解決するかどうかを確認してください。
OSのアップデートまたはロールバックを検討する – アップデートによってバグが発生することがあるため
最近のアップデート後にこの問題が発生した場合は、ロールバックすることで解決できる可能性があります。または、最新のオプションアップデートをインストールすることで、このバグを修正できる可能性があります。設定のWindows Updateでアップデートを確認するか、「更新とセキュリティ」>「Windows Update」>「更新履歴」>「更新プログラムのアンインストール」で最近のアップデートをロールバックしてください。ただし、バグは後のパッチまで修正されない場合もあるため、最新の状態を維持することが通常はより安全です。
システムドライブとディスクの状態を確認する – ハードウェアの故障によりDLLの問題が発生する可能性があるため
ドライブが故障している場合、破損したセクターがDLLの読み込みに悪影響を及ぼす可能性があります。以下のコマンドを実行してchkdskディスクをチェックしてください。
chkdsk /f /r C:
このプロセスはエラーをスキャンし、修復を試みます。エラーが解決しない場合、または不良セクタが見られる場合、特にエラーが繰り返し発生する場合は、ドライブの交換が必要になる可能性があります。
システムの復元または修復インストールを使用する – Windowsをリセットする必要がある場合もあります
それでも解決しない場合は、システムを以前の状態に復元することで、DLLエラーの原因を解消できる可能性があります。「rstrui実行」と入力し、復元のプロンプトに従ってください。より徹底的な修復を行うには、修復インストール(対応するWindowsメディアを使用)を実行することで、ファイルを失わずにWindowsをリフレッシュできます。ISOsetup.exeイメージから実行し、アップグレードオプションを選択すると、ファイルはそのまま残ります。
場合によっては、ライブラリ、ドライバ、システム設定を少しいじるだけで、これらのエラーのほとんどを解消できることがあります。多くの場合、これらの解決策を系統的にテストし、最終的に解決できるまで続ける必要があります。ただし、WindowsはDLLの問題に対して奇妙で頑固な場合があることを覚えておいてください。そのため、忍耐が鍵となります。
まとめ
- 古いアプリの場合は互換モードを試してください。
- VC++、DirectX、.NET などのランタイム ライブラリをインストールまたは修復します。
- アプリが地域固有である場合は、システム ロケールを確認または変更します。
- コマンドプロンプトを使用して DLL および OCX ファイルを再登録します。
- 特定のプログラムが問題の原因となっている場合は、アプリ自体を修復してください。
- 必要に応じてセーフモードを使用して再インストールしてください。
- グラフィック ドライバーを更新またはロールバックします。
- ソフトウェアの競合がないか確認するにはクリーン ブートを実行します。
- マルウェアスキャンとシステムファイルチェックを実行します。
- ディスクの状態を確認し、システムの復元または OS の修復を検討してください。
まとめ
0xC0000142エラーの修正は、ちょっとした手探り作業ですが、ほとんどの場合、破損したDLLの修復または置換、ドライバーの更新、システム設定の調整といった作業で済みます。必ずしも迅速に解決できるとは限りませんが、これらのオプションを体系的に活用することで、通常は問題を解決できます。この方法が、誰かのシステム復旧に役立つことを願っています。私が触ったいくつかのマシンでは、確かに効果がありました。