UIntPtr (user32)
Last changed: -90.152.60.34

.

A platform-specific type for unsigned pointers, handles and integers.

One usage of UIntPtr is to represent the platform-specific size_t type. e.g.

//#include <cstring>
//void *memcpy( void *to, const void *from, size_t count );

[DllImport("msvcrt.dll", EntryPoint = "memcpy", CallingConvention = CallingConvention.Cdecl, SetLastError = false)]
public static extern IntPtr MemCopy(byte[] dest, byte[] src, UIntPtr count);

//Console Prints: 0 0 1
public static void CopyPrint()
{
    byte[] dest = new byte[] { 1, 1, 1 };
    byte[] src = new byte[] { 0, 0, 0 };
    UIntPtr count = new UIntPtr(2u);

    MemCopy(dest, src, count);

    for (int i = 0; i < dest.Length; i++)
    {
    Console.Write(dest[i] + " ");
    }
}