API数据类型 | 类型描述 | C#类型 | API数据类型 | 类型描述 | C#类型 |
---|---|---|---|---|---|
WORD | 16位无符号整数 | ushort | CHAR | 字符 | char |
LONG | 32位无符号整数 | int | DWORDLONG | 64位长整数 | long |
DWORD | 32位无符号整数 | uint | HDC | 设备描述表句柄 | int |
HANDLE | 句柄,32位整数 | int | HGDIOBJ | GDI对象句柄 | int |
UINT | 32位无符号整数 | uint | HINSTANCE | 实例句柄 | int |
BOOL | 32位布尔型整数 | bool | HWM | 窗口句柄 | int |
LPSTR | 指向字符的32位指针 | string | HPARAM | 32位消息参数 | int |
LPCSTR | 指向常字符的32位指针 | String | LPARAM | 32位消息参数 | int |
BYTE | 字节 | byte | WPARAM | 32位消息参数 | int |
C++ | C# |
---|---|
WORD | ushort |
DWORD | uint |
UCHAR | int/byte 大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte |
UCHAR* | string/IntPtr |
unsigned char* | [MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr) |
char* | string |
LPCTSTR | string |
LPTSTR | [MarshalAs(UnmanagedType.LPTStr)] string |
long | int |
ulong | uint |
Handle | IntPtr |
HWND | IntPtr |
void* | IntPtr |
int | int |
int* | ref int |
*int | IntPtr |
unsigned int uint | |
COLORREF | uint |
BOOL | System.Int32 |
BOOLEAN | System.Int32 |
BYTE | System.UInt16 |
CHAR | System.Int16 |
COLORREF | System.UInt32 |
DWORD | System.UInt32 |
DWORD32 | System.UInt32 |
DWORD64 | System.UInt64 |
FLOAT | System.Float |
HACCEL | System.IntPtr |
HANDLE | System.IntPtr |
HBITMAP | System.IntPtr |
HBRUSH | System.IntPtr |
HCONV | System.IntPtr |
HCONVLIST | System.IntPtr |
HCURSOR | System.IntPtr |
HDC | System.IntPtr |
HDDEDATA | System.IntPtr |
HDESK | System.IntPtr |
HDROP | System.IntPtr |
HDWP | System.IntPtr |
HENHMETAFILE | System.IntPtr |
HFILE | System.IntPtr |
HFONT | System.IntPtr |
HGDIOBJ | System.IntPtr |
HGLOBAL | System.IntPtr |
HHOOK | System.IntPtr |
HICON | System.IntPtr |
HIMAGELIST | System.IntPtr |
HIMC | System.IntPtr |
HINSTANCE | System.IntPtr |
HKEY | System.IntPtr |
HLOCAL | System.IntPtr |
HMENU | System.IntPtr |
HMETAFILE | System.IntPtr |
HMODULE | System.IntPtr |
HMONITOR | System.IntPtr |
HPALETTE | System.IntPtr |
HPEN | System.IntPtr |
HRGN | System.IntPtr |
HRSRC | System.IntPtr |
HSZ | System.IntPtr |
HWINSTA | System.IntPtr |
HWND | System.IntPtr |
INT | System.Int32 |
INT32 | System.Int32 |
INT64 | System.Int64 |
LONG | System.Int32 |
LONG32 | System.Int32 |
LONG64 | System.Int64 |
LONGLONG | System.Int64 |
LPARAM | System.IntPtr |
LPBOOL | System.Int16[] |
LPBYTE | System.UInt16[] |
LPCOLORREF | System.UInt32[] |
LPCSTR | System.String |
LPCTSTR | System.String |
LPCVOID | System.UInt32 |
LPCWSTR | System.String |
LPDWORD | System.UInt32[] |
LPHANDLE | System.UInt32 |
LPINT | System.Int32[] |
LPLONG | System.Int32[] |
LPSTR | System.String |
LPTSTR | System.String |
LPVOID | System.UInt32 |
LPWORD | System.Int32[] |
LPWSTR | System.String |
LRESULT | System.IntPtr |
PBOOL | System.Int16[] |
PBOOLEAN | System.Int16[] |
PBYTE | System.UInt16[] |
PCHAR | System.Char[] |
PCSTR | System.String |
PCTSTR | System.String |
PCWCH | System.UInt32 |
PCWSTR | System.UInt32 |
PDWORD | System.Int32[] |
PFLOAT | System.Float[] |
PHANDLE | System.UInt32 |
PHKEY | System.UInt32 |
PINT | System.Int32[] |
PLCID | System.UInt32 |
PLONG | System.Int32[] |
PLUID | System.UInt32 |
PSHORT | System.Int16[] |
PSTR | System.String |
PTBYTE | System.Char[] |
PTCHAR | System.Char[] |
PTSTR | System.String |
PUCHAR | System.Char[] |
PUINT | System.UInt32[] |
PULONG | System.UInt32[] |
PUSHORT | System.UInt16[] |
PVOID | System.UInt32 |
PWCHAR | System.Char[] |
PWORD | System.Int16[] |
PWSTR | System.String |
REGSAM | System.UInt32 |
SC_HANDLE | System.IntPtr |
SC_LOCK | System.IntPtr |
SHORT | System.Int16 |
SIZE_T | System.UInt32 |
SSIZE_ | System.UInt32 |
TBYTE | System.Char |
TCHAR | System.Char |
UCHAR | System.Byte |
UINT | System.UInt32 |
UINT32 | System.UInt32 |
UINT64 | System.UInt64 |
ULONG | System.UInt32 |
ULONG32 | System.UInt32 |
ULONG64 | System.UInt64 |
ULONGLONG | System.UInt64 |
USHORT | System.UInt16 |
WORD | System.UInt16 |
WPARAM | System.IntPtr |
非托管C 语言类型 | 托管类名 | 说明 |
---|---|---|
HANDLE | void* | System.IntPtr 32 位 |
BYTE | unsigned char | System.Byte 8 位 |
SHORT | short | System.Int16 16 位 |
WORD | unsigned short | System.UInt16 16 位 |
INT | int | System.Int32 32 位 |
UINT | unsigned int | System.UInt32 32 位 |
LONG | long | System.Int32 32 位 |
BOOL | long | System.Int32 32 位 |
DWORD | unsigned long | System.UInt32 32 位 |
ULONG | unsigned long | System.UInt32 32 位 |
CHAR | char | System.Char 用 ANSI 修饰。 |
LPSTR | char* | System.String 或 System.StringBuilder 用 ANSI 修饰。 |
LPCSTR | Const char* | System.String 或 System.StringBuilder 用 ANSI 修饰。 |
LPWSTR | wchar_t* | System.String 或 System.StringBuilder 用 Unicode 修饰。 |
LPCWSTR | Const wchar_t* | System.String 或 System.StringBuilder 用 Unicode 修饰。 |
FLOAT | Float System.Single 32 位 | |
DOUBLE | Double | System.Double 64 位 |