Windowsで「アプリケーションで未処理の例外が発生しました(An unhandled win32 exception occurred)」エラーを解決する9つの対処法
「An unhandled win32 exception occurred in *アプリ名*(*アプリ名* で未処理の win32 例外が発生しました)」というエラーは、主に Visual Studio でビルドされたアプリケーションを起動しようとした際に発生します。報告されているケースの多くは、Uplay、Internet Explorer、そして旧Windows向けに開発されたレガシーゲームに関連するものです。
補足:Visual C++ に関連するランタイムライブラリのエラーを修正する方法については、こちらも併せてご確認ください。
Windowsで「アプリケーションで未処理の例外が発生しました」エラーが起こる原因
この問題にはいくつかの単純な原因があり、正しい原因を見極めることで効果的に対処できます。以下の一覧から自分の状況に当てはまるものを探してみましょう。
- アンチウイルスソフトが原因の可能性 – Panda Antivirusなど一部のセキュリティソフトではこの問題が発生することが知られています。該当する場合は、別のソフトへの乗り換えを検討しましょう。
- 特定のプログラムやマルウェアが動作している – インストール済みのプログラムやマルウェアが影響している可能性があります。クリーンブートを実行して、原因かどうかを確認してください。
- Microsoft .NET Framework のインストールが破損している – コアファイルが破損している場合は、インストールの修復、新しいバージョンのインストール、SFCスキャンの実行などを試しましょう。
- レジストリ経由でスクリプトデバッグが有効になっている – 特定のレジストリキーがこの問題の引き金になることがあります。レジストリキーを編集してスクリプトデバッグを無効化する必要があります。
- Msvcr92.dll 内のアクセス違反 – ソースバッファの超過や最終バイトの不備も原因になり得ます。これに対処するには、保留中のWindowsアップデートをすべて適用します。
- Ubisoft ランチャーのレジストリキーの削除 – Uplay.exe の起動時にこのエラーが出る場合は、Ubisoft Game Launcher の不具合が原因です。レジストリから該当ランチャーの値を削除することで解決できます。
- システムファイルの破損 – システムファイルの不整合でもこの問題が起こります。軽度の破損であれば DISM および SFC スキャンで解決でき、深刻な場合はクリーンインストールまたは上書き修復インストールが必要です。
対処法1:保留中のWindowsアップデートをすべてインストールする
「An unhandled win32 exception occurred」エラーの最も一般的な原因の一つは、x64プラットフォーム向けにビルドされたアプリケーションが MSVCR90.DLL を介して strncpy 関数を呼び出すことです。
この場合、Msvcr92.DLL ファイル内でアクセス違反が発生し、strncpy 関数の処理中にアプリケーションが応答しなくなることがあります。ソースバッファの超過や最終バイトの不備が主な原因です。
幸い、Microsoft はすでにこの問題を認識しており、自動的に解決するホットフィックスを公開しています。これを利用するには、OSを最新バージョンに更新するだけです。
補足:このホットフィックスは Visual Studio 2008 のリビジョンとして配信されており、Windowsが自動的に更新します。そのため、以下の手順はOSのバージョンを問わず有効です。
以下は、Windowsを最新版に更新して Visual Studio 2008 用のホットフィックスを適用し、問題を解決するための手順です。
- Windowsキー + R を押して「ファイル名を指定して実行」ダイアログを開きます。「ms-settings:windowsupdate」と入力し、Enterキーを押して設定アプリのWindows Update画面を開きます。
補足:Windows 7 または Windows 8.1 の場合は、代わりに「wuapp」コマンドを使用してください。 - Windows Updateの画面で「更新プログラムのチェック」をクリックし、画面の指示に従って、現在インストール待ちになっているWindowsアップデートをすべて完了させます。
補足:「重要な更新のみ」ではなくすべての更新プログラムをインストールすることが重要です。ホットフィックスはVisual Studioのリビジョンに含まれているため、「オプション」扱いになっている場合があります。 - すべての更新プログラムをインストールする前に再起動を求められた場合は、再起動してください。次回起動後にもう一度同じ画面に戻り、残りの更新のインストールを完了させましょう。
- すべての保留中の更新が完了したら、PCをもう一度再起動し、以前エラーが出ていた操作を繰り返して問題が解決したか確認します。
それでも「An unhandled win32 exception occurred」エラーが表示される場合は、次の方法に進んでください。
対処法2:アンチウイルスソフトを乗り換える
無料のアンチウイルスソフトは便利ですが、PC上の他のソフトウェアと相性が悪いことがあります。アンチウイルスが有効な状態でこの問題が発生する場合は、別のソフトへの乗り換えを検討しましょう。
- スタートメニューから「コントロールパネル」を検索して開きます。Windows 10を使用している場合は、歯車アイコンをクリックして「設定」を開いても構いません。
- コントロールパネルの右上で「表示方法:カテゴリ」を選択し、「プログラム」セクションの「プログラムのアンインストール」をクリックします。
- 設定アプリを使用している場合は、「アプリ」をクリックすると、PCにインストールされているすべてのプログラムの一覧がすぐに表示されます。
- コントロールパネルまたは設定でアンチウイルスソフトを見つけ、「アンインストール」をクリックします。
- アンインストールウィザードが開くので、画面の指示に従ってアンインストールを進めます。
- アンインストーラーの処理が完了したら「完了」をクリックし、PCを再起動してエラーがまだ表示されるかどうかを確認します。より優れたアンチウイルス製品を選ぶことを忘れないでください。
対処法3:ランチャーのレジストリ値を削除する(該当する場合)
Uplay.exe またはUbisoft関連のアプリケーションを起動しようとしたときに「An unhandled win32 exception occurred」エラーが発生する場合は、Ubisoft Game Launcher の不具合が原因である可能性が高いです。
実際、これはWindows 10で広く見られる問題で、特にSteamとUplayを同時にインストールしているユーザーに多く報告されています。
この問題に悩まされていた多くのユーザーが、レジストリエディターを使ってランチャーに属する文字列値を見つけて削除することで解決しています。これにより競合が解消され、両方のアプリケーションが同じマシン上で正常に動作するようになります。
以下は、Uplayランチャーに関連するレジストリ値を削除する手順です。
- Windowsキー + R を押して「ファイル名を指定して実行」ダイアログを開き、「regedit」と入力してEnterキーを押し、レジストリエディターを起動します。UAC(ユーザーアカウント制御)のプロンプトが表示されたら「はい」をクリックして管理者権限を付与します。
- レジストリエディター内で、ウィンドウ左側のツリーを使って以下の場所へ移動します:
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ubisoft
補足:手動で移動しても、上部のアドレスバーに直接パスを貼り付けてEnterキーを押しても構いません。 - 正しい場所に到達したら、右側のペインに移動し、「Launcher」を右クリックして「削除」を選択します。
補足:キーを削除できない場合は、レジストリキーの所有権を取得する必要があります。
補足:削除後、ランチャーは新しいデータで Launcher 文字列値を強制的に再作成するため、問題が解決されるはずです。 - キーを削除したら、レジストリエディターを閉じてPCを再起動します。
- 次回起動時に、以前「An unhandled win32 exception occurred」エラーを引き起こしていた操作を繰り返し、問題が解決したかどうかを確認します。
同じ問題が続く場合は、次の対処法に進んでください。
対処法4:Internet Explorerをリセットする(該当する場合)
この問題のもう一つの原因として考えられるのは、Internet Explorer(IE)の破損です。「An unhandled win32 exception occurred in iexplore.exe」というエラーが表示される場合、スクリプトの失敗後に発生している可能性が高いです。
この問題を解決するには、「インターネットオプション」メニューから Internet Explorer の設定をリセットします。この方法で成功したという報告が多数あります。
以下は、Internet Explorer をリセットしてエラーを解決する手順です。
- Internet Explorer、Edge、その他の関連アプリが完全に終了しており、バックグラウンドプロセスも実行されていないことを確認します。
- Windowsキー + R を押して「ファイル名を指定して実行」ダイアログを開き、「inetcpl.cpl」と入力してEnterキーを押し、「インターネットオプション」メニューを開きます。
補足:UAC(ユーザーアカウント制御)のプロンプトが表示されたら、「はい」をクリックして管理者権限を付与します。 - 「インターネットのプロパティ」画面が開いたら、上部のメニューから「詳細設定」タブを選択します。次に「Internet Explorerの設定をリセット」セクションにある「リセット」ボタンをクリックします。
- 確認画面が表示されたら、「個人設定を削除する」にチェックが入っていることを確認して「リセット」ボタンをクリックします。
- 処理が完了するまで待ち、その後PCを再起動して、次回起動時に問題が解決したかどうかを確認します。
それでも「An unhandled win32 exception occurred in iexplore.exe」エラーが発生する場合は、次の方法に進みましょう。
対処法5:スクリプトデバッグと関連するレジストリキーを無効化する(該当する場合)
Visual Studio(VS)がインストールされたマシンで Internet Explorer の問題が発生している場合、スクリプトデバッグが有効になっており、レジストリエントリに破損したデータが含まれていることが原因の場合があります。
この問題に遭遇した複数のユーザーが、「インターネットオプション」メニューでスクリプトデバッグを無効化し、その後レジストリエディターで関連キーを削除することで問題を解決したと報告しています。
以下は、iexplore.exe のエラーを修正するための手順です。
- Windowsキー + R を押して「ファイル名を指定して実行」ダイアログを開き、「inetcpl.cpl」と入力してEnterキーを押し、「インターネットオプション」メニューを開きます。UAC(ユーザーアカウント制御)のプロンプトが表示されたら「はい」をクリックして管理者権限を付与します。
- 「インターネットのプロパティ」画面に入ったら、上部のメニューから「詳細設定」タブを選択します。
- 「設定」リストを下にスクロールし、「スクリプトのデバッグを使用しない(Internet Explorer)」にチェックを入れます。
- 変更を加えたら「適用」をクリックして保存し、「インターネットのプロパティ」ウィンドウを閉じます。
- 再度Windowsキー + R を押して別のダイアログボックスを開き、今度は「regedit」と入力してEnterキーを押し、レジストリエディターを起動します。管理者アクセスが必要なので、ユーザーアカウント制御のウィンドウで「はい」をクリックします。
- レジストリエディター内で、左側のメニューを使って以下の場所へ移動します:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug (32ビット環境) HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug (64ビット環境)
補足:削除すべきキーの場所は、使用しているWindowsのバージョンによって異なります。32ビット版Windowsの場合は最初の場所を、そうでない場合は2番目の場所を使用してください。 - 正しい場所に到達したら、右側のペインに移動し、「Debugger」を右クリックしてコンテキストメニューから「削除」を選択します。
- このキーを削除したら、次に以下の場所へ移動します:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\ (32ビット環境) HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework (64ビット環境)
補足:自分が使用しているWindowsのビット数に対応するレジストリキーにアクセスしてください。 - 正しい場所に到着したら、右側のセクションに移動し、「DbgManagedDebugger」の値を右クリックして、コンテキストメニューから「削除」を選択します。
- 値を削除できたら、レジストリエディターを閉じてPCを再起動します。
- 次回起動が完了したら、同じ問題がまだ発生しているかどうかを確認します。
それでも「An unhandled win32 exception occurred」エラーが発生する場合は、次の方法に進んでください。
対処法6:最新バージョンの.NET Frameworkをインストールして修復する
.NET Framework はPCにとって非常に重要で、多くの現代的なゲームやプログラムがそのインストールに依存しています。修復作業の前に、まず以下の手順で最新バージョンをインストールしましょう。
Microsoftの公式ダウンロードページにアクセスし、赤いダウンロードボタンをクリックして Microsoft .NET Framework の最新版をダウンロードします。ダウンロードが完了したら、ファイルを探して実行します。インストールには常時インターネット接続が必要なので注意してください。画面の指示に従ってインストールを進めます。
- 最新バージョンをインストールしたら、整合性をチェックします。キーボードで Windowsキー + R を押して「ファイル名を指定して実行」ダイアログを開きます。
- 「control.exe」と入力して「OK」をクリックし、コントロールパネルを開きます。
- 「プログラムのアンインストール」オプションをクリックし、「Windowsの機能の有効化または無効化」をクリックします。「.NET Framework 4.x.x」のエントリを見つけて、有効になっていることを確認してください。「x.x」はお使いのOSで利用可能な最新バージョンを表します。
- .NET Framework 4.x.x の横にあるチェックボックスが無効になっている場合は、クリックして有効化します。「OK」をクリックして「Windowsの機能」ウィンドウを閉じ、PCを再起動します。
- すでに .NET Framework 4.x.x が有効になっている場合は、チェックを外してPCを再起動することで修復できます。再起動後、再度 .NET Framework を有効化してもう一度PCを再起動してください。
対処法7:クリーンブートを実行する
Microsoft .NET Framework スイートの正常な動作に影響を与える他のプログラムやサービスは数多く存在します。多くの場合、原因はインストール済みのアンチウイルスソフトであり、無効化してみるとエラーが消えるかどうかを確認できます。しかし、何も干渉しない状態を確実にするために、Microsoft以外のすべてのプログラムとサービスの起動を無効化するクリーンブートを行うことをおすすめします。こうすることで、どのプログラムがエラーを引き起こしているのかを簡単に特定できます。
- キーボードで Windows + R キーの組み合わせを押し、「ファイル名を指定して実行」ダイアログボックスに「MSCONFIG」と入力して「OK」をクリックします。
- 「ブート」タブをクリックし、「セーフブート」オプションのチェックを外します(チェックが入っている場合)。
- 同じウィンドウの「全般」タブで、「スタートアップのオプションを選択」を選び、「スタートアップの項目を読み込む」のチェックボックスをオフにします。
- 「サービス」タブで、「すべてのMicrosoftサービスを隠す」チェックボックスを選択し、その後「すべて無効」をクリックします。
- 「スタートアップ」タブで「タスクマネージャーを開く」をクリックします。タスクマネージャーの「スタートアップ」タブで、有効になっている各スタートアップ項目を右クリックし、「無効化」を選択します。
- ここから先は少し地道な作業になります。スタートアップ項目を一つずつ有効化してはPCを再起動し、問題が再発するかどうかを確認していきます。ステップ4で無効化したサービスについても同じプロセスを繰り返す必要があります。
- 問題のあるスタートアップ項目またはサービスを特定できたら、対策を実施しましょう。プログラムであれば「再インストール」や「修復」を行い、サービスであれば無効化するなどの対応が可能です。
対処法8:SFCを使ってシステムファイルをスキャンする
Microsoft .NET Framework の破損は、 faulty なシステムファイルに関連しているとの報告があります。これらの問題はシステムファイルの深部に根ざしているため、解決を試みる唯一の方法はシステムファイルチェッカー(SFC)の実行です。SFCはシステムファイルのエラーをスキャンし、可能であれば修復または置き換えを行います。以下の手順に従って実行しましょう。
- スタートメニューに直接入力するか、その横の検索ボタンを使って「コマンドプロンプト」を検索します。検索結果の最初のエントリを右クリックし、「管理者として実行」をコンテキストメニューから選択します。
- あるいは、Windowsロゴキー + R の組み合わせで「ファイル名を指定して実行」ダイアログを開き、「cmd」と入力して、Ctrl + Shift + Enter キーの組み合わせで管理者権限のコマンドプロンプトを起動することもできます。
- 以下のコマンドをウィンドウに入力し、それぞれ入力後にEnterキーを押します。「操作は正常に完了しました」といったメッセージが表示されれば、コマンドが正常に実行されたことを意味します。
sfc /scannow
- PCを再起動し、「アプリケーションで未処理の例外が発生しました」エラーがまだ表示されるかどうかを確認します。
対処法9:クリーンインストールを実行する
ここまで紹介した方法のどれでも問題を解決できなかった場合は、従来の手法では解決できない何らかのWindowsの不整合に直面している可能性が高いです。
このような場合は、Windowsインストールに関連するすべてのコンポーネントをリセットすることで問題を解決できるはずです。この方法を選ぶ場合、進め方は2通りあり、どちらを選ぶかはご自身の希望によります。
- 上書き修復インストール(インプレース修復) – OSの全コンポーネントをリフレッシュしたい場合に最適な方法ですが、やや手間がかかると感じるユーザーもいます。互換性のあるインストールメディアが必要ですが、最大のメリットは、バックアップをしていなくても個人データ(ゲーム、アプリケーション、個人的なメディアファイルなど)がすべて保持される点です。
- クリーンインストール – 最もシンプルな解決策をお探しなら、こちらがおすすめです。インストールメディアは不要で(すべてWindowsのGUIから実行できます)、ただし事前にデータをバックアップしない限り、全データが失われる覚悟が必要です。
-
アプリケーションで不明なソフトウェア例外 (0x40000015) が発生する問題の修正方法
アプリケーションで不明なソフトウェア例外 (0x40000015) が発生した場合の対処法:エラーコード 0x40000015 は、PCの電源を入れ、Windows 10 にログインした直後にポップアップ表示されるエラーメッセージです。このエラーコードは、シャットダウンの過程で何らかのアプリケーションがハンドルされていないランタイム例外を引き起こしていることを意味します。主な原因は、Windows のシステムファイルが何らかの理由で破損し、ランタイム例外が発生することです。完全なエラーメッセージは以下の通りです。 アプリケーション内の場所 0x004423ee で、不明なソフトウェア例外 (0
-
【Windows 10】「アプリケーションで未処理の例外が発生しました」エラーを解決する13の対処法
アプリケーションを起動したときに「未処理の例外が発生しました(unhandled exception has occurred)」というエラーメッセージが表示されてお困りですか?この記事では、その問題を解決するための有効な対処法を詳しくご紹介します。このエラーは、過去にVisual Studioでビルドされたアプリケーションを起動する際によく発生します。特にUplay、Internet Explorer、旧バージョンのWindows向けに開発されたゲームなどのアプリケーションで多く報告されています。以下で紹介する方法を試せば、この問題は簡単に解決できます。 Windows 10で「アプリケー