c和c#托管与非托管代码中变量对应2010-12-25下表列出了在 Win32 API(在 Wtypes.h 中列出)和 C 样式函数中使用的数据类型。许多非托管库包含将这些数据类型作为参数传递并返回值的函数。第三列列出了在托管代码中使用的相应的 .NET Framework 内置值类型或类。某些情况下,您可以用大小相同的类型替换此表中列出的类型。Wtypes.h中的非托管类 非托管类型 托管类名 说明
| 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 位 |