サイトアイコン CAD日記

アプリの64bit化

アプリの64bitアプリ化が進んでいる。
メリットを以下で整理してみる。
1.実装メモリーを無駄なく使用できて、大きいファイル(特に画像ファイル)を
 扱うときに、メモリー不足による動作制限がほぼなくなる
2.64bit OSで32bitアプリを動作させるためのオーバーヘッドがなくなり、
 多少速くなるらしい
3.なんだかスゴいらしいという評判を得ることができる
これを得るためには、プログラムに手を入れる必要がある。
VisualStudioの構成マネージャーでx64をつくって、ビルドすることから
始めるわけだが、すんなりとビルドが通ることはない。
1.ポインタが64bitになったため、ポインタをint・long・DWORDなどに
 キャストしている箇所を、INT_PTR,UINT_PTRに変更する
2.LPARAMが64bitになったため、LPARAMの代わりにLONGを
 使っている場合はLPARAMに変更する
3.WIN32で分岐処理している箇所があれば、WIN64でも有効に
 なるようにし、またWIN64での分岐処理が必要なところもある
普通の関数で実装しているところは問題なくビルドできるが、
Window回りのクラスについてはビルドを通すのに苦労する。
※VisualStudio環境での話
リンクしている外部ライブラリは、64bit版に変更する必要がある。
もし外部ライブラリに64bit版が存在しなければ、その機能を
あきらめるしかない。
たいていのものは存在するが、UNLHA32.dllは名前が示す通り
64bit版がない。
でも、いまどきLZHの圧縮解凍を行わないので機能がなくなっても
問題ないだろう。
32bitアプリと64bitアプリは、同一ソースで実現できる。
ビルド単位を分けてそれぞれビルドすれば、別のバイナリが
出来上がる。
32bitアプリは、32bitOSと64bitOSいずれでも動くが、
64bitアプリは、64bitOSでしか動かない。
速度についてはあまり期待しないほうがよい。
おいらの計測結果では、64bitアプリが32bitアプリよりも
数パーセント程度速くなっただけだった。

モバイルバージョンを終了