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

it2022-05-09  33

C++            C#=====================================WORD            ushortDWORD            uintUCHAR            int/byte   大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte UCHAR*            string/IntPtrunsigned char*         [MarshalAs(UnmanagedType.LPArray)]byte[]/?(Intptr)char*            stringLPCTSTR            stringLPTSTR            [MarshalAs(UnmanagedType.LPTStr)] stringlong            intulong               uintHandle            IntPtrHWND            IntPtrvoid*            IntPtrint            intint*            ref int*int            IntPtrunsigned int        uintCOLORREF                uint

 

 

 

API与C#的数据类型对应关系表 API数据类型类型描述C#类型API数据类型类型描述C#类型WORD16位无符号整数ushortCHAR字符charLONG32位无符号整数intDWORDLONG64位长整数longDWORD32位无符号整数uintHDC设备描述表句柄intHANDLE句柄,32位整数intHGDIOBJGDI对象句柄intUINT32位无符号整数uintHINSTANCE实例句柄intBOOL32位布尔型整数boolHWM窗口句柄intLPSTR指向字符的32位指针stringHPARAM32位消息参数intLPCSTR指向常字符的32位指针StringLPARAM32位消息参数intBYTE字节byteWPARAM32位消息参数int

 

 

 

 

BOOL=System.Int32BOOLEAN=System.Int32BYTE=System.UInt16CHAR=System.Int16COLORREF=System.UInt32DWORD=System.UInt32DWORD32=System.UInt32DWORD64=System.UInt64FLOAT=System.FloatHACCEL=System.IntPtrHANDLE=System.IntPtrHBITMAP=System.IntPtrHBRUSH=System.IntPtrHCONV=System.IntPtrHCONVLIST=System.IntPtrHCURSOR=System.IntPtrHDC=System.IntPtrHDDEDATA=System.IntPtrHDESK=System.IntPtrHDROP=System.IntPtrHDWP=System.IntPtrHENHMETAFILE=System.IntPtrHFILE=System.IntPtrHFONT=System.IntPtrHGDIOBJ=System.IntPtrHGLOBAL=System.IntPtrHHOOK=System.IntPtrHICON=System.IntPtrHIMAGELIST=System.IntPtrHIMC=System.IntPtrHINSTANCE=System.IntPtrHKEY=System.IntPtrHLOCAL=System.IntPtrHMENU=System.IntPtrHMETAFILE=System.IntPtrHMODULE=System.IntPtrHMONITOR=System.IntPtrHPALETTE=System.IntPtrHPEN=System.IntPtrHRGN=System.IntPtrHRSRC=System.IntPtrHSZ=System.IntPtrHWINSTA=System.IntPtrHWND=System.IntPtrINT=System.Int32INT32=System.Int32INT64=System.Int64LONG=System.Int32LONG32=System.Int32LONG64=System.Int64LONGLONG=System.Int64LPARAM=System.IntPtrLPBOOL=System.Int16[]LPBYTE=System.UInt16[]LPCOLORREF=System.UInt32[]LPCSTR=System.StringLPCTSTR=System.StringLPCVOID=System.UInt32LPCWSTR=System.StringLPDWORD=System.UInt32[]LPHANDLE=System.UInt32LPINT=System.Int32[]LPLONG=System.Int32[]LPSTR=System.StringLPTSTR=System.StringLPVOID=System.UInt32LPWORD=System.Int32[]LPWSTR=System.StringLRESULT=System.IntPtrPBOOL=System.Int16[]PBOOLEAN=System.Int16[]PBYTE=System.UInt16[]PCHAR=System.Char[]PCSTR=System.StringPCTSTR=System.StringPCWCH=System.UInt32PCWSTR=System.UInt32PDWORD=System.Int32[]PFLOAT=System.Float[]PHANDLE=System.UInt32PHKEY=System.UInt32PINT=System.Int32[]PLCID=System.UInt32PLONG=System.Int32[]PLUID=System.UInt32PSHORT=System.Int16[]PSTR=System.StringPTBYTE=System.Char[]PTCHAR=System.Char[]PTSTR=System.StringPUCHAR=System.Char[]PUINT=System.UInt32[]PULONG=System.UInt32[]PUSHORT=System.UInt16[]PVOID=System.UInt32PWCHAR=System.Char[]PWORD=System.Int16[]PWSTR=System.StringREGSAM=System.UInt32SC_HANDLE=System.IntPtrSC_LOCK=System.IntPtrSHORT=System.Int16SIZE_T=System.UInt32SSIZE_=System.UInt32TBYTE=System.CharTCHAR=System.CharUCHAR=System.ByteUINT=System.UInt32UINT32=System.UInt32UINT64=System.UInt64ULONG=System.UInt32ULONG32=System.UInt32ULONG64=System.UInt64ULONGLONG=System.UInt64USHORT=System.UInt16WORD=System.UInt16WPARAM=System.IntPtr

<---------补充----------->

Wtypes.h 中的非托管类型    非托管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 位

转载于:https://www.cnblogs.com/tuyile006/p/3804310.html

相关资源:C 与 C# 数据类型对照(全)

最新回复(0)