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