Q. PVOID64 ってなあに?
A. 64 bit OS のポインタと 32 bit OS のポインタの互換性をふんにゃかするための型
PVOID64 ってのは、みればさ、void のポインタなんだろうな〜ってことはわかるよね。
まあ、定義を見てみよう。
PVOID64 は、WinNT.h(Platform SDK に入ってた) の 222 行目に書いてある:
typedef void* PVOID; typedef void* POINTER_64 PVOID64;
PVOID と PVOID64 の違いは、POINTER_64 の有無なわけだね〜。
この POINTER_64 は、`BaseTsd.h' でこんな風に定義されてる:
#if (_MSC_VER >= 1300) /* まだあるけど省略 */ # define POITNER_64 __ptr64 #else # define POITNER_64 #endif
まとめ
PVOID64 とは、「void* __ptr64」か「void*」ってことらしい。
__ptr64 は、 64 bit OS のネイティブポインタを表すらしく、VC++ 2005 のときは
これがウザかったもんだった。
でも、2008 になったら、そんなことはなかったぜ!