2013/7/19 (金) 09:17:19 おかぽん |
822_コピーフック
http://mrxray.on.coocan.jp/Delphi/plSamples/822_ShellCopyHook.htm#04
リスト5のサンプルソースにおいて、32bit版コンパイル、32bitOSかつIsWow64Process関数が
存在する場合、Button4クリックで「64 ビット版です」と表示されます。
「32bit版にIsWow64Process関数がない」との記載があります(自分もそう思っていました)が、
もしかすると64bit版が出たXPにおいてのみの話であって、Vista以降は標準関数なのかもしれません。
Windows7 SP1 32bit版 と 同64bit版 しかないので、詳しくわかりませんが。
そのためIsWow64Process関数の有無と結果フラグ(第二引数)で64bit版OSの判定を行うことは
できないようです(IsWow64Process関数は64bitOS上でWOW64動作しているかを返すため
32bitOS&64bitOS+64bitアプリでは、結果フラグがFalseになる)。
以下のように、条件シンボルでも使わないといけないようです。
{$IFDEF WIN32}
MessageBox(Handle, '32 ビット版です', '情報', MB_OK or MB_ICONASTERISK);
{$ELSE}
MessageBox(Handle, '64 ビット版です', '情報', MB_OK or MB_ICONASTERISK);
{$ENDIF}
|
|