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
API与C#的数据类型对应关系表
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
BOOL=System.Int32
BOOLEAN=System.Int32
BYTE=System.UInt16
CHAR=System.Int16
COLORREF=System.UInt32
DWORD=System.UInt32
DWORD32=System.UInt32
DWORD6