C++数据类型与C#对应关系 c#调用WINDWOS API时,非常有用
C++???????? ? 输入输出? ? C#
==================================
char chr[255] ? O? ? StringBuilder
KCA_DIR????????? ? I? ? int
LPCSTR?????????? ? I? ? string
int?????????????????? ? ?? I? ? int
LPSTR??????????? ? O? ? StringBuilder
int*??????????????????? ? O? ? out int
DWORD???????? ? ?? I? ? int
DWORD*??????? ? O? ? out int
BOOL?????????????? ? I? ? bool
Rc_DBMgr??????? ? I? ? IntPtr
long*??????????????? ? O? ? out long
?
?
API与C#的数据类型对应关系表API数据类型类型描述C#类型API数据类型类型描述C#类型WORD16位无符号整数ushortCHAR字符charLONG32位无符号整数intDWORDLONG64位长整数longDWORD32位无符号整数uintHDC设备描述表句柄intHANDLE句柄,32位整数intHGDIOBJGDI对象句柄intUINT32位无符号整数uintHINSTANCE实例句柄intBOOL32位布尔型整数boolHWM窗口句柄intLPSTR指向字符的32位指针stringHPARAM32位消息参数intLPCSTR指向常字符的32位指针StringLPARAM32位消息参数intBYTE字节byteWPARAM32位消息参数int?
?
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 位