【转帖】C# 与 C++ 数据类型对照
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
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
 
<---------补充----------->
 
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 位
 转帖自:http://blog.csdn.net/okadler0518/article/details/4289679
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号