WPFアプリ終了時にAccess violationが発生する。
開発しているWPFアプリが、終了時にAccess Violationを投げて異常終了していることがわかりました。なんかGoogleIMEが関係しているようなのですが、本当のところはよく分かりません。
環境はWindows10,VisualStudio2019です。
起こったこと
WPFアプリを開発しているとき、Debugモードで実行中にアプリ側で実行終了すると「プログラムはコード(0xC0000005) Access Violation で終了しました。」と出力されることに気づいた。必ずではなく、出ないときもある。
うううー、デバッグモードでしか出ないし、どっちにしろ終了時なのだから実行に問題ない!! 放っておいても良いかな・・・と頭をよぎったのだが、Windowsのイベントログを見てみたらリリースモードの実行でもバリバリにエラー出ていました。
やったこと
とりあえずググったが・・・、英語も含めて情報が少ない!(皆さんお困りではないのか?)
見つけたのがこの記事。
https://qiita.com/MiyakoG/items/9898c41c12cf948eda39
「プロジェクトのプロパティ>デバッグ>ネイティブ コードのデバッグを有効にする(T)」にチェック
で実行したところ、GoogleIMEの名前がついたDLLが例外を投げているところまで分かった。が、それで行き止まり。
さらにやったこと
えーい、力技じゃ、ということで、アプリを分解してエラーが出ないところまで戻り、1個づつ組み立てながら発火点を探すという作業・・・。
それで、TextBoxを使うとエラーが出ると分かった。
TextBox?IME?でひらめいたのでした。
最後に分かったこと
原因はGoogle日本語入力(2.25.3700 現時点の最新)でした。IMEをMicrosoft IMEに切り替えたら直りました。おわり。実害はないけど前から出ていたのかなあ?不思議です。
なお、TextBoxのIME無効化スイッチは効果ありませんでした。
やっぱりなんかおかしい
その後いろいろ試しているのですが、他のPCで実行するとAccess Violationではなく、0x4000001fで終了したり、そもそもWindow+TextBoxだけのアプリでは落ちなかったりするので、まだ調査いるみたいです。
今のところGoogleIMEを外すと問題なくなるという点だけは確実ですが。
Author And Source
この問題について(WPFアプリ終了時にAccess violationが発生する。), 我々は、より多くの情報をここで見つけました https://qiita.com/kurasho/items/f3a9956e284b0d35281b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .