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数据类型

BOOLBOOLEAN

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

 

               
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值