LONG_PTR

読み:ロング・ポインター
外語:LONG_PTR 英語
品詞:名詞

Microsoft WindowsAPIなどに使われている、Cの変数型の一つ。ポインター長のlong。

Win32環境では32ビット長、Win64環境では64ビット長である。

目次

Windowsアプリケーションで、64ビット対応をする場合、longやLONGを、LONG_PTRに置き換える作業が主となる。

例えば、WindowsのAPI関数でよく使われるLPARAM型やLRESULT型は、LONG_PTR型をtypedefしたものである。また、SetWindowLong関数の改訂版として登場したSetWindowLongPtr関数は、第3引数がそのままLONG_PTR型で定義されている。

Microsoft Visual C++ 2008環境では、次のように定義される。

定義

名称にPTRとあるためポインター変数のように見えるが、実際にはそうではなく整数型の変数である。従ってLONG_PTRは「ポインター長のlong」であり、これを「long長のポインター」と考えることは誤りである。

Microsoft Visual C++ 2008環境では、次のように定義される。

(BaseTsd.h)

typedef [public] __int3264 LONG_PTR;

Win32プラットフォームでは__int32Win64プラットフォームでは__int64として定義される。

すなわち、その環境におけるポインターのビット長と同じ長さの整数型として定義されている。

過去

現在の定義では、LONG_PTRはINT_PTRと同じである。

かつてはINT_PTRはintのtypedef、LONG_PTRはlongのtypedefだったため、このような名前となっているのである。

BaseTsd.hには、古い環境での定義が今も残されている。

関連する用語
ULONG_PTR
INT_PTR

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club