Поделиться через


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

Обновлен: Ноябрь 2007

В следующей таблице представлены типы данных, используемые в функциях 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.

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.

См. также

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

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

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

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

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

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

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