C#中有一个很长版本的IntPtr吗?

时间:2014-04-11 08:11:54

标签: c# c++ pointers 64-bit 32-bit

我需要C#中C ++的等效ULONG_PTR

This让我感到紧张。我不能在32位应用程序中处理64位指针吗?

<小时/> 如果怀疑XY问题:我需要在C#中使用OVERLAPPED结构。它包含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;

1 个答案:

答案 0 :(得分:3)

32位系统中的所有指针都是32位,64位系统中的所有指针都是64位本地指针。 64位可以为期望32位的传统应用程序模拟32位指针。

在32位系统中,您不能使用64位指针。如果可以的话,64位系统的用途是:)

您可以对遇到的任何指针使用System.IntPtr