.NET Framework虽然已经给我们封装了很多系统的函数来供我们调用,但还有很多是不常用的,.NET Framework也没有帮我们封装,这时就要我们自己来调用windows系统的API函数来处理,但有时候我们查到了对应的API函数,但由于其数据类型与我们常用的.NET的数据类型不同,就不知道要用什么数据类型来传参及接收数据,下面列出了这些数据类型的对比,以做记录。
| 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 |