zoukankan      html  css  js  c++  java
  • C#中调用Windows API时的数据类型对应关系

    在C#中做很多应用需要使用win32 API,但发现原型函数的一些数据类型看起来非常费劲,甚至在C#中“没有”这种数据类型,查阅了一下资料,数据类型对应关系整理如下,希望对大家有用:

    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 位

  • 相关阅读:
    有价值的终会被人发现和承认
    Sql中存在斜杠“/”怎么办?
    JSONObject和JSONArray(json-lib-2.4)的基本用法
    如何设定linux系统时间
    动态创建的文本框想要加上jQuery的datepicker功能变成日期选择控件该怎么办?
    如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了
    Notepad2替代系统自带的记事本Notepad
    css属性与js中style对象的属性对应表
    day02_js学习笔记_01_js的简介、js的基本语法
    Eclipse/MyEclipse的快捷键以及文档注释、多行注释的快捷键
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/1258495.html
Copyright © 2011-2022 走看看