0xc0150004
2010年06月04日
アプリケーションエラー 0xc0150004 につきまして
KUです。
本日開発の方に勤しんでいますと、件の「0xc0150004 エラー」に遭遇致しました。
発生の可能性としまして、「SystemRoot環境変数が正しく設定されていない」ことが考えられます。
この情報源となりました、韓国語のサイトを参考として挙げます:http://somma.egloos.com/tag/WinSxS/page/1 (Google翻訳)
SystemRoot環境変数の見方:
- 「コマンドプロンプト」を立ち上げて、
- 「set」を入力、「Enter」キー押下、で長々と出て参ります。
注:文中「\」記号は、「¥」として見えるものを意図しています。
「SystemRoot=C:\WINDOWS」 私の環境では、この部分がそれに当たります。
SystemRoot環境変数がどこで定義されていのか? は、定かでは有りません。
レジストリを検索していますと、それらしいデータを見つけましたので、参考として挙げさせて頂きます:
- 「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion」の、
- 「SystemRoot」。
- 私の環境では「C:\WINDOWS」に設定。
これが発生した状況を書きますと長くなるので、要約致しますと:
- ATLのCAccessToken::CreateProcessAsUserを呼び出す際に、CREATE_UNICODE_ENVIRONMENTを伴わずに、notepad.exeを起動したら発生
でございます。
参考までに、その状態で「cmd.exe」を立ち上げまして、「set」コマンドを実行しました様子も掲載致します:
SystemRoot環境変数が未設定です。更に、
- notepad.exeを実行しようとしますと、PATHが通っていないのでエラーになります。
- C:\windows\system32\notepadで立ち上げますと、先ほどのエラー画面が出て参ります。
- 試しに「SET SYSTEMROOT=C:\Windows」コマンドを発行し、SystemRoot環境変数を設定した上で、メモ帳を立ち上げますと、一応立ち上がりました。
改めてこのエラーの要因につきまして考察致しますと、
- レジストリが壊れているか、
- プログラムのバグ?
が、考えられます。
以上、考えられる所をメモ書きさせて頂きました。