2015年2月13日金曜日

Windows: The application was unable to start correctly (0xc0000022); Click OK to close the application

Windows10で、MSVC++2015でビルドした.exeを実行したらことごとく、

The application was unable to start correctly (0xc0000022); Click OK to close the application

こんなエラーに見舞われた。お腹痛い。

原因はぐぐるとアンチウイルスがどうのと言われていたりするけど答えは違った。

この現象を引き起こすためには、ファイルの転送方法が重要で、USBマスストレージデバイスやSambaでコピーする一般的なWindowsユーザーとは無縁と思われる方法を使う。

私はWindowsというのはどうも使い慣れないもので、最近用意したWindows10試験機もCygwinを入れてzshを使っていた。

さて、このCygwin環境でファイルを共有する方法として私はrsyncを使っている。

rsync -av source:~/hoge/fuga destination

お馴染みの転送コマンドで速度的によほどの要求がなければ通常はこうしてファイル転送するのが楽で、いつもそうしている。

ところが、この方法を使うとどうもファイルアクセス権が思い通りに設定されてくれないらしく、転送した.exeにchmod +xして実行しても端末では何も起こらないし、exeplorer.exeからポチポチすると、はじめにあげたエラーが出現する。

The application was unable to start correctly (0xc0000022); Click OK to close the application

いちいちファイルのNTFS上でのアクセス権を設定するのも面倒なので、簡単な回避方法としては、explorer.exeが開ける.zipにかためて転送して開くなり展開するなりするか、あるいはCygwin/rsyncで.exeを転送せず他のWindowsのユーザーアカウント情報がファイル記録によろしく設定されるSambaなどを使えば良い。

原因に気づかないではまりそうな罠だったので備忘録にした。

0 件のコメント:

コメントを投稿