C#中调用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);

原文地址:https://www.cnblogs.com/randyzhuwei/p/7844146.html