Мне нужен эквивалент 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;
Все указатели в 32-разрядной системе являются 32-разрядными, а все указатели в 64-разрядной системе изначально являются 64-разрядными. 64-битные могут эмулировать 32-битные указатели для устаревших приложений, которые ожидают 32-битные.
В 32-битной системе вы не можете иметь 64-битный указатель. Если бы вы могли, что бы использовать 64-битные системы 🙂
Ты можешь использовать System.IntPtr
для любого указателя, с которым вы сталкиваетесь.
Других решений пока нет …