C#中调用Windows API时的数据类型对应关系

最近做WinForm项目时,要调用Windows API。查阅了一些资料,数据类型对应关系整理如下

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  

附:举一个声明API的例子  

[ DllImport( "Kernel32.dll" )]

 public static extern System.UInt32 VirtualAllocEx( System.IntPtr hProcess,  System.UInt32 lpAddress,  

System.UInt32 dwSize,  System.UInt32 flAllocationType,  System.UInt32 flProtect );

posted @ 2014-01-26 14:34  weixiao520  阅读(912)  评论(0编辑  收藏  举报