Типы данных вызовов неуправляемого кода

В следующей таблице представлены типы данных, используемые в функциях Win32 API (перечислены в файле Wtypes.h) и в функциях в стиле C. Многие неуправляемые библиотеки содержат функции, передающие эти типы данных в качестве параметров и возвращаемых значений. В третьей колонке представлены соответствующие встроенные типы значений .NET Framework или классы, используемые в управляемом коде. В некоторых случаях представленный в таблице тип можно заменить типом того же размера.

Неуправляемый тип в Wtypes.h

Неуправляемый тип языка C

Имя управляемого класса

Описание

HANDLE

void*

System.IntPtr

32 разряда в 32-разрядных операционных системах Windows, 64 разряда в 64-разрядных операционных системах Windows.

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.

WCHAR

wchar_t

System.Char

В кодировке Юникод.

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

В кодировке Юникод.

LPCWSTR

Const wchar_t*

System.String или System.Text.StringBuilder

В кодировке Юникод.

FLOAT

Float

System.Single

32 бита

DOUBLE

Double

System.Double

64 бита

Соответствующие типы в Visual Basic 2005, C# и C++, см. в разделе Введение в библиотеку классов .NET Framework.

См. также

Основные понятия

Маршалинг строк

Маршалинг классов, структур и объединений

Маршалинг массивов типов

Другие примеры маршалинга

Другие ресурсы

Маршалинг данных при вызове неуправляемого кода