| SU | MO | TU | WE | TH | FR | SA |
|---|---|---|---|---|---|---|
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | 1 | 2 | 3 | 4 | 5 | 6 |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
WOW64の罠にはまって半日を費やしたのでメモ
32bitアプリを64bit環境で動かすための仕組み
これのおかげで何も意識せず32bitアプリが使える
レジストリやsystem32フォルダにアクセスする際に注意が必要。
詳細は、WOW64 - Wikipedia。
ややこしいことに、32bit時代のパス名%systemroot%\System32は64bitアプリ専用になっており、32bitアプリ用には%systemroot%\SysWOW64が使われる。
しかし、32bitアプリは%systemroot%\System32のパス名で%systemroot%\SysWOW64にアクセスすることになる。
アプリからパスを取得しても%systemroot%\SysWOW64が%systemroot%\System32に見える。
このような仕様があるせいで、対象のフォルダにファイル置いたのに見つからない問題が発生する。
具体例を挙げると、Systemユーザの%appdata%が%systemroot%\System32\config\systemprofile\AppData\Roamingなので、32bit/64bitで実態の場所が変わってしまう。
フォルダあるのにDirectoryNotFoundExceptionが返ってくるなど起きたら、WOW64の影響を確認してみよう。