Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following table lists data types used in the Win32 API (listed in Wtypes.h) and C-style functions. Many unmanaged libraries contain functions that pass these data types as parameters and return values. The third column lists the corresponding .NET Framework built-in value type or class that you use in managed code. In some cases, you can substitute a type of the same size for the type listed in the table.
Unmanaged type in Wtypes.h | Unmanaged C language type | Managed class name | Description |
---|---|---|---|
HANDLE | void* | System.IntPtr | 32 bits |
BYTE | unsigned char | System.Byte | 8 bits |
SHORT | short | System.Int16 | 16 bits |
WORD | unsigned short | System.UInt16 | 16 bits |
INT | int | System.Int32 | 32 bits |
UINT | unsigned int | System.UInt32 | 32 bits |
LONG | long | System.Int32 | 32 bits |
BOOL | long | System.Int32 | 32 bits |
DWORD | unsigned long | System.UInt32 | 32 bits |
ULONG | unsigned long | System.UInt32 | 32 bits |
CHAR | char | System.Char | Decorate with ANSI. |
LPSTR | char* | System.String or System.StringBuilder | Decorate with ANSI. |
LPCSTR | Const char* | System.String or System.StringBuilder | Decorate with ANSI. |
LPWSTR | wchar_t* | System.String or System.StringBuilder | Decorate with Unicode. |
LPCWSTR | Const wchar_t* | System.String or System.StringBuilder | Decorate with Unicode. |
FLOAT | Float | System.Single | 32 bits |
DOUBLE | Double | System.Double | 64 bits |
For corresponding types in Visual Basic .NET, C#, and the Managed Extensions for C++, see the Introduction to the .NET Framework Class Library.
See Also
Marshaling Data with Platform Invoke | Marshaling Strings | Marshaling Classes, Structures, and Unions | Marshaling Arrays of Types | Miscellaneous Marshaling Samples