25/04/21 11:37:03.90 ed9AfVbw0.net
CharGPTの回答
WinAPI型名 意味 C# 対応型 備考・使い方例
BYTE 8ビット符号なし整数 byte 0〜255
WORD 16ビット符号なし整数 ushort 0〜65535
DWORD 32ビット符号なし整数 uint よく使われる
LONG 32ビット符号付き整数 int 一部APIでは戻り値で使用
ULONG 32ビット符号なし整数 uint DWORDと同義扱いされることあり
BOOL 論理値(実際はint型) bool または int C#では [MarshalAs(UnmanagedType.Bool)] を使うと便利
LPSTR ANSI文字列へのポインタ string (MarshalAs(UnmanagedType.LPStr))
LPCWSTR Unicode文字列定数へのポインタ string (MarshalAs(UnmanagedType.LPWStr)) 通常はこれを使う
LPBYTE BYTEへのポインタ IntPtr / byte[] / byte* C#で配列やポインタとして使う
LPDWORD DWORDへのポインタ ref uint / out uint / IntPtr APIによって使い分け
HANDLE 汎用ハンドル IntPtr ハンドルは全部 IntPtr
PVOID/LPVOID 任意のポインタ IntPtr Voidポインタの表現
CHAR 1バイト文字 byte(ANSI)/ char(Unicode) ANSI文字列なら byte
TCHAR Unicode/ANSI切り替え可能文字型 char または string Unicode前提なら char/string