C#2C++数据类型对照

API数据类型转换指南

API数据类型对应关系表

API数据类型类型描述C#类型API数据类型类型描述C#类型
WORD16位无符号整数ushortCHAR字符char
LONG32位无符号整数intDWORDLONG64位长整数long
DWORD32位无符号整数uintHDC设备描述表句柄int
HANDLE句柄,32位整数intHGDIOBJGDI对象句柄int
UINT32位无符号整数uintHINSTANCE实例句柄int
BOOL32位布尔型整数boolHWM窗口句柄int
LPSTR指向字符的32位指针stringHPARAM32位消息参数int
LPCSTR指向常字符的32位指针StringLPARAM32位消息参数int
BYTE字节byteWPARAM32位消息参数int

基本数据类型

C++C#
WORDushort
DWORDuint
UCHARint/byte 大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte
UCHAR*string/IntPtr
unsigned char*[MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr)
char*string
LPCTSTRstring
LPTSTR[MarshalAs(UnmanagedType.LPTStr)] string
longint
ulonguint
HandleIntPtr
HWNDIntPtr
void*IntPtr
intint
int*ref int
*intIntPtr
unsigned int uint
COLORREFuint
BOOLSystem.Int32
BOOLEANSystem.Int32
BYTESystem.UInt16
CHARSystem.Int16
COLORREFSystem.UInt32
DWORDSystem.UInt32
DWORD32System.UInt32
DWORD64System.UInt64
FLOATSystem.Float
HACCELSystem.IntPtr
HANDLESystem.IntPtr
HBITMAPSystem.IntPtr
HBRUSHSystem.IntPtr
HCONVSystem.IntPtr
HCONVLISTSystem.IntPtr
HCURSORSystem.IntPtr
HDCSystem.IntPtr
HDDEDATASystem.IntPtr
HDESKSystem.IntPtr
HDROPSystem.IntPtr
HDWPSystem.IntPtr
HENHMETAFILESystem.IntPtr
HFILESystem.IntPtr
HFONTSystem.IntPtr
HGDIOBJSystem.IntPtr
HGLOBALSystem.IntPtr
HHOOKSystem.IntPtr
HICONSystem.IntPtr
HIMAGELISTSystem.IntPtr
HIMCSystem.IntPtr
HINSTANCESystem.IntPtr
HKEYSystem.IntPtr
HLOCALSystem.IntPtr
HMENUSystem.IntPtr
HMETAFILESystem.IntPtr
HMODULESystem.IntPtr
HMONITORSystem.IntPtr
HPALETTESystem.IntPtr
HPENSystem.IntPtr
HRGNSystem.IntPtr
HRSRCSystem.IntPtr
HSZSystem.IntPtr
HWINSTASystem.IntPtr
HWNDSystem.IntPtr
INTSystem.Int32
INT32System.Int32
INT64System.Int64
LONGSystem.Int32
LONG32System.Int32
LONG64System.Int64
LONGLONGSystem.Int64
LPARAMSystem.IntPtr
LPBOOLSystem.Int16[]
LPBYTESystem.UInt16[]
LPCOLORREFSystem.UInt32[]
LPCSTRSystem.String
LPCTSTRSystem.String
LPCVOIDSystem.UInt32
LPCWSTRSystem.String
LPDWORDSystem.UInt32[]
LPHANDLESystem.UInt32
LPINTSystem.Int32[]
LPLONGSystem.Int32[]
LPSTRSystem.String
LPTSTRSystem.String
LPVOIDSystem.UInt32
LPWORDSystem.Int32[]
LPWSTRSystem.String
LRESULTSystem.IntPtr
PBOOLSystem.Int16[]
PBOOLEANSystem.Int16[]
PBYTESystem.UInt16[]
PCHARSystem.Char[]
PCSTRSystem.String
PCTSTRSystem.String
PCWCHSystem.UInt32
PCWSTRSystem.UInt32
PDWORDSystem.Int32[]
PFLOATSystem.Float[]
PHANDLESystem.UInt32
PHKEYSystem.UInt32
PINTSystem.Int32[]
PLCIDSystem.UInt32
PLONGSystem.Int32[]
PLUIDSystem.UInt32
PSHORTSystem.Int16[]
PSTRSystem.String
PTBYTESystem.Char[]
PTCHARSystem.Char[]
PTSTRSystem.String
PUCHARSystem.Char[]
PUINTSystem.UInt32[]
PULONGSystem.UInt32[]
PUSHORTSystem.UInt16[]
PVOIDSystem.UInt32
PWCHARSystem.Char[]
PWORDSystem.Int16[]
PWSTRSystem.String
REGSAMSystem.UInt32
SC_HANDLESystem.IntPtr
SC_LOCKSystem.IntPtr
SHORTSystem.Int16
SIZE_TSystem.UInt32
SSIZE_System.UInt32
TBYTESystem.Char
TCHARSystem.Char
UCHARSystem.Byte
UINTSystem.UInt32
UINT32System.UInt32
UINT64System.UInt64
ULONGSystem.UInt32
ULONG32System.UInt32
ULONG64System.UInt64
ULONGLONGSystem.UInt64
USHORTSystem.UInt16
WORDSystem.UInt16
WPARAMSystem.IntPtr

Wtypes.h 中的非托管类型

非托管C 语言类型托管类名说明
HANDLEvoid*System.IntPtr 32 位
BYTEunsigned charSystem.Byte 8 位
SHORTshortSystem.Int16 16 位
WORDunsigned shortSystem.UInt16 16 位
INTintSystem.Int32 32 位
UINTunsigned intSystem.UInt32 32 位
LONGlongSystem.Int32 32 位
BOOLlongSystem.Int32 32 位
DWORDunsigned longSystem.UInt32 32 位
ULONGunsigned longSystem.UInt32 32 位
CHARcharSystem.Char 用 ANSI 修饰。
LPSTRchar*System.String 或 System.StringBuilder 用 ANSI 修饰。
LPCSTRConst char*System.String 或 System.StringBuilder 用 ANSI 修饰。
LPWSTRwchar_t*System.String 或 System.StringBuilder 用 Unicode 修饰。
LPCWSTRConst wchar_t*System.String 或 System.StringBuilder 用 Unicode 修饰。
FLOATFloat System.Single 32 位
DOUBLEDoubleSystem.Double 64 位

转载于:https://my.oschina.net/VenusV/blog/1841656

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值