平台调用数据类型
下表列出了在 Win32 API(在 Wtypes.h 中列出)和 C 样式函数中使用的数据类型。许多非托管库包含将这些数据类型作为参数传递并返回值的函数。第三列列出了在托管代码中使用的相应的 .NET Framework 内置值类型或类。某些情况下,您可以用大小相同的类型替换此表中列出的类型。
Wtypes.h 中的非托管类型 非托管 C 语言类型 托管类名 说明
HANDLE
void*
System.IntPtr
在 32 位 Windows 操作系统上为 32 位,在 64 位 Windows 操作系统上为 64 位。
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.Text.StringBuilder
用 ANSI 修饰。
LPCSTR
Const char*
System.String 或 System.Text.StringBuilder
用 ANSI 修饰。
LPWSTR
wchar_t*
System.String 或 System.Text.StringBuilder
用 Unicode 修饰。
LPCWSTR
Const wchar_t*
System.String 或 System.Text.StringBuilder
用 Unicode 修饰。
FLOAT
Float
System.Single
32 位
DOUBLE
Double
System.Double
64 位
有关 Visual Basic 2005、C# 和 C++ 中的相应类型,请参见 .NET Framework 类库介绍。
long * --> ref int
const char * --> string 或 stringBuilder
double * --> ref double
unsigned short * --> ref System.Uint16
const char * * --> string[,]
Wtypes.h 中的非托管类型 非托管 C 语言类型 托管类名 说明
HANDLE
void*
System.IntPtr
在 32 位 Windows 操作系统上为 32 位,在 64 位 Windows 操作系统上为 64 位。
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.Text.StringBuilder
用 ANSI 修饰。
LPCSTR
Const char*
System.String 或 System.Text.StringBuilder
用 ANSI 修饰。
LPWSTR
wchar_t*
System.String 或 System.Text.StringBuilder
用 Unicode 修饰。
LPCWSTR
Const wchar_t*
System.String 或 System.Text.StringBuilder
用 Unicode 修饰。
FLOAT
Float
System.Single
32 位
DOUBLE
Double
System.Double
64 位
有关 Visual Basic 2005、C# 和 C++ 中的相应类型,请参见 .NET Framework 类库介绍。
long * --> ref int
const char * --> string 或 stringBuilder
double * --> ref double
unsigned short * --> ref System.Uint16
const char * * --> string[,]