Есть ли длинная версия IntPtr в C #?

Мне нужен эквивалент ULONG_PTR из C ++ в C #.

это заставляет меня нервничать Разве я не могу справиться с 64-битным указателем в 32-битном приложении?


В случае подозрения на XY Проблема: мне нужен OVERLAPPED структура в C #. И это содержит ULONG_PTR, Выглядит так:

typedef struct _OVERLAPPED
{
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union
{
struct
{
DWORD Offset;
DWORD OffsetHigh;
} DUMMYSTRUCTNAME;
PVOID Pointer;
} DUMMYUNIONNAME;
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;

3

Решение

Все указатели в 32-разрядной системе являются 32-разрядными, а все указатели в 64-разрядной системе изначально являются 64-разрядными. 64-битные могут эмулировать 32-битные указатели для устаревших приложений, которые ожидают 32-битные.

В 32-битной системе вы не можете иметь 64-битный указатель. Если бы вы могли, что бы использовать 64-битные системы 🙂

Ты можешь использовать System.IntPtr для любого указателя, с которым вы сталкиваетесь.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector