64ビット環境に以降する際の注意点

そろそろ本格的に64Bit OS上でCV.netを動かす必要がありそうなので、調査してみた。
http://www.microsoft.com/japan/msdn/net/general/64migrate.asp
一応、サンプルプログラムを作って64ビットVista上で動作させてみた。
《上がAnyCPUでコンパイル、下がx64でコンパイル。両方とも64ビットで動作》

IntPtrのサイズが8になっている(32ビットでは4)
(x86コンパイルした場合にはIntPtrのサイズが4。WOW64で実行される)
バイナリシリアル化、アンセーフコード等を使用してなければ問題ないようだし、AnyCPUでコンパイルしたものはそのままポインタサイズが拡張されるので大丈夫。
しかし、

実行時に 64 ビット環境で実行しているのかどうかを確認できます。IntPtr.Size を使用することが、確認するための唯一の方法です。

とあるので、「えっ!IntPtr.Sizeでしか確認できないの???」と思った...

ところで、画面のbutton1と2の間にNGの文字が表示されているが、これはロールのテスト。
XPだと、Admin権限を持つuserの場合ちゃんと値が返ってくるが、VistaではAdmin権限をもつuserでもロールのチェックをするとNGになってしまう!このあたりも気をつけなければならない...
(たぶんVistaではAdmin権限ユーザでも通常は一般権限で、特別な操作のみ権限の昇格を行うから?)

MEMO(24523)