Windows

Windows 7 x64 で chkdsk をしちゃダメ

無題

chkdsk.exeに5GB強のメモリを占拠されてこうなった。

Windows 7 RTM版に「深刻なバグ」の指摘
~CHKDSK実行でOSがクラッシュ、開発責任者は火消しに躍起

とりあえず、RTMから直ってないのかどうかは知らないけど、
何度やってもメモリが足りなくなる。

4GB以上のメモリを消費しているところを見て、さすが64bitなんだなーって実感したけど、
これは普通に困るから何とかして欲しいわ。
(もうすぐ出るらしいSP1に期待)

.NETアプリを64bitOSのWOW64上で動かす

.NETのアプリが動作モードが32bitか64bitかというのは
ビルドするときに立てたフラグからx86/x64の動作を決めているらしい。

x64で本格化する64ビットWindowsの時代(5) – ITレポート(動向/解説):ITpro

ビルドするとき[Any CPU]にしていると、32bit環境なら32bitで、64bit環境なら64bitで動作する。
ならそんなわけで、ちょっと前の.NET 2.0が主流だった頃のアプリケーションは64bitを意識せずに作っているわけでもないのに、64bitで動作していたりする。
中にはunzip32.dllみたいなモジュールをロードしようとしたりしてエラーみたいなことになったりする。

解決方法としてはWOW64上で32bitとして動かせばいいというだけなんだが、
とっくの昔に開発を終了しているソフトをコンパイルし直せとか作者に求めるのは無理なので、
Windows SDKに入ってる「corflags.exe」を使って、PEヘッダーを書き換えることにした。