• C#与C++类型对应表


    在使用.Net互操作时,经常涉及到一些C++到C#的类型转换问题,为了以后方便查询,现将一些资源整理如下:

     
     

    C++与C#数据类型对照表

    C++数据类型

    C#数据类型

    WORD

    ushort

    DWORD

    uint

    UCHAR

    int/byte

    UCHAR*

    string/InPtr

    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


     

    Windows(C++)与C#数据类型对照表

    Windows数据类型

    .NET数据类型

    BOOL, BOOLEAN

    Boolean or Int32

    BSTR

    String

    BYTE

    Byte

    CHAR

    Char

    DOUBLE

    Double

    DWORD

    Int32 or UInt32

    FLOAT

    Single

    HANDLE (and all other handle types, such as HFONT and HMENU)

    IntPtr, UintPtr or HandleRef

    HRESULT

    Int32 or UInt32

    INT

    Int32

    LANGID

    Int16 or UInt16

    LCID

    Int32 or UInt32

    LONG

    Int32

    LPARAM

    IntPtr, UintPtr or Object

    LPCSTR

    String

    LPCTSTR

    String

    LPCWSTR

    String

    LPSTR

    String or StringBuilder*

    LPTSTR

    String or StringBuilder

    LPWSTR

    String or StringBuilder

    LPVOID

    IntPtr, UintPtr or Object

    LRESULT

    IntPtr

    SAFEARRAY

    .NET array type

    SHORT

    Int16

    TCHAR

    Char

    UCHAR

    SByte

    UINT

    Int32 or UInt32

    ULONG

    Int32 or UInt32

    VARIANT

    Object

    VARIANT_BOOL

    Boolean

    WCHAR

    Char

    WORD

    Int16 or UInt16

    WPARAM

    IntPtr, UintPtr or Object

     

    API与C#数据类型对照表

    API数据类型

    类型描述

    C#数据类型

    WORD

    16位无符号整数

    ushort

    LONG

    32位无符号整数

    int

    DWORD

    32位无符号整数

    uint

    HANDLE

    句柄,32位整数

    int

    UINT

    32位无符号整数

    uint

    BOOL

    32位布尔型整数

    bool

    LPSTR

    之乡字符的32位指针

    string

    LPCSTR

    指向常字符的32位指针

    string

    BYTE

    字节

    byte

    CHAR

    字符

    char

    DWORDLONG

    64位长度整数

    long

    HDC

    设备描述表句柄

    int

    HGDIOBJ

    GDI对象句柄

    int

    HINSTANCE

    实例句柄

    int

    HWM

    窗口句柄

    int

    HPARAM

    32位消息参数

    int

    LPARAM

    32位消息参数

    int

    WPARAM

    32位消息参数

    int

    Wtypes.h与C#数据类型对照表

    Wtypes.h中的非托管类型

    非托管C语言类型

    托管类名

    位数

    HANDLE

    void*

    IntPtr

    32

    BYTE

    unsigned char

    Byte

    8

    SHORT

    short

    Int16

    16

    WORD

    unsigned short

    UInt16

    16

    INT

    int

    Int32

    32

    UINT

    unsigned int

    UInt32

    32

    LONG

    long

    Int32

    32

    BOOL

    long

    Int32

    32

    DWORD

    unsigned long

    UInt32

    32

    ULONG

    unsigned long

    UInt32

    32

    CHAR

    char

    Char

     

    LPSTR

    char*

    StringStringBuilder用ANSI修饰

     

    LPCSTR

    Const char*

    StringStringBuilder用ANSI修饰

     

    LPWSTR

    wchar_t*

    StringStringBuilder用ANSI修饰

     

    LPCWSTR

    Constwchar_t*

    StringStringBuilder用ANSI修饰

     

    FLOAT

    Float

    Single

    32

    DOUBLE

    Double

    Double

    64

     

     

     

     

    C++与C#数据类型对照表

    C++数据类型

    C#数据类型

    BOOL

    Int32

    BOOLEAN

    Int32

    BYTE

    UInt16

    CHAR

    UInt16

    COLORREF

    UInt32

    DWORD

    UInt32

    DWORD32

    UInt32

    DWORD64

    UInt64

    FLOAT

    Float

    HACCEL

    IntPtr

    HANDLE

    IntPtr

    HBITMAP

    IntPtr

    HBRUSH

    IntPtr

    HCONV

    IntPtr

    HCONVLIST

    IntPtr

    HCURSOR

    IntPtr

    HDC

    IntPtr

    HDDEDATA

    IntPtr

    HDESK

    IntPtr

    HDROP

    IntPtr

    HDWP

    IntPtr

    HENHMETAFILE

    IntPtr

    HFILE

    IntPtr

    HFONT

    IntPtr

    HGDIOBJ

    IntPtr

    HGLOBAL

    IntPtr

    HHOOK

    IntPtr

    HICON

    IntPtr

    HIMAGELIST

    IntPtr

    HIMC

    IntPtr

    HINSTANCE

    IntPtr

    HKEY

    IntPtr

    HLOCAL

    IntPtr

    HMENU

    IntPtr

    HMETAFILE

    IntPtr

    HMODULE

    IntPtr

    HMONITOR

    IntPtr

    HPALETTE

    IntPtr

    HPEN

    IntPtr

    HRGN

    IntPtr

    HRSRC

    IntPtr

    HSZ

    IntPtr

    HWINSTA

    IntPtr

    HWND

    IntPtr

    INT

    Int32

    INT32

    Int32

    INT64

    Int64

    LONG

    Int32

    LONG32

    Int32

    LONG64

    Int64

    LONGLONG

    Int64

    LPARAM

    IntPtr

    LPBOOL

    Int16[]

    LPBYTE

    UInt16[]

    LPCOLORREF

    UInt32[]

    LPCSTR

    String

    LPCTSTR

    String

    LPCVOID

    UInt32

    LPCWSTR

    String

    LPDWORD

    UInt32

    LPHANDLE

    UInt32

    LPINT

    UInt32

    LPLONG

    UInt32

    LPSTR

    String

    LPTSTR

    String

    LPVOID

    UInt32

    LPWORD

    UInt32[]

    LPWSTR

    String

    LRESULT

    IntPtr

    PBOOL

    Int16[]

    PBOOLEAN

    Int16[]

    PBYTE

    UInt16[]

    PCHAR

    Char[]

    PCSTR

    String

    PCTSTR

    String

    PCWCH

    UInt32

    PCWSTR

    UInt32

    PDWORD

    Int32[]

    FPFLOAT

    Float[]

    PHANDLE

    UInt32

    PHKEY

    UInt32

    PINT

    Int32[]

    PLCID

    UInt32

    PLONG

    Int32[]

    PLUID

    Uint32

    PSHORT

    Int16[]

    PSTR

    String

    PTBYTE

    Char[]

    PTCHAR

    Char[]

    PTSTR

    String

    PUCHAR

    Char[]

    PUINT

    UInt32[]

    PULONG

    UInt32[]

    PUSHORT

    UInt16[]

    PVOID

    UInt32

    PWCHAR

    Char[]

    PWORD

    Int16[]

    PWSTR

    String

    REGSAM

    UInt32

    SC_HANDLE

    IntPtr

    SC_LOCK

    IntPtr

    SHORT

    Int16

    SIZE_T

    UInt32

    SSIZE

    UInt32

    TBYTE

    Char

    TCHAR

    Char

    UCHAR

    Byte

    UINT

    UInt32

    UINT32

    UInt32

    UINT64

    UInt64

    ULONG

    UInt32

    ULONG32

    UInt32

    ULONG64

    UInt64

    ULONGLONG

    UInt64

    USHORT

    UInt16

    WORD

    UInt16

    WPARAM

    IntPtr









    下载C#封装好的Win32API
  • 相关阅读:
    在Windows Server 2008 R2下搭建jsp环境(四)-在测试的过程中可能出现的问题
    在Windows Server 2008 R2下搭建jsp环境(一)-JDK的下载安装
    在Windows Server 2008 R2下搭建jsp环境(二)-mysql的下载安装
    如何去掉word中的回车符??
    打开office时提示错误窗口“向程序发送命令时出现问题”的解决方案
    在Windows Server 2008 R2下搭建jsp环境
    咱们一起来搭建一个FTP服务器
    如何将项目部署到Github
    电脑开机失败提示"用户配置文件服务登录失败"的三种解决办法
    个人作业2
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/2195794.html
Copyright © 2020-2023  润新知