Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Marshal.ReadIntPtr Method

Reads a processor native sized integer from unmanaged memory.

Overload List

Reads a processor native sized integer from unmanaged memory.

[Visual Basic] Overloads Public Shared Function ReadIntPtr(IntPtr) As IntPtr
[C#] public static IntPtr ReadIntPtr(IntPtr);
[C++] public: static IntPtr ReadIntPtr(IntPtr);
[JScript] public static function ReadIntPtr(IntPtr) : IntPtr;

Reads a processor native sized integer from unmanaged memory.

[Visual Basic] Overloads Public Shared Function ReadIntPtr(IntPtr, Integer) As IntPtr
[C#] public static IntPtr ReadIntPtr(IntPtr, int);
[C++] public: static IntPtr ReadIntPtr(IntPtr, int);
[JScript] public static function ReadIntPtr(IntPtr, int) : IntPtr;

Reads a processor native sized integer from unmanaged memory.

[Visual Basic] Overloads Public Shared Function ReadIntPtr(Object, Integer) As IntPtr
[C#] public static IntPtr ReadIntPtr(object, int);
[C++] public: static IntPtr ReadIntPtr(Object, int);
[JScript] public static function ReadIntPtr(Object, int) : IntPtr;

Example

[Visual Basic, C#] The following example compares two ways of interacting with an unmanaged C-style IntPtr array. The ReadIntPtr method provides direct access to the array's element values.

[Visual Basic, C#] Note   This example shows how to use one of the overloaded versions of ReadIntPtr. For other examples that might be available, see the individual overload topics.
[Visual Basic] 
Dim unmanagedArray As IntPtr = ...
Dim i As Integer
' One way to print the 10 elements of the C-style unmanagedArray
Dim newArray As IntPtr(9)
Marshal.Copy(unmanagedArray, newArray, 0, 10)
For i = 0 To newArray.Length
  Console.WriteLine(newArray(i))
Next i
' Another way to print the 10 elements of the C-style unmanagedArray
For i = 0 To 10
  Console.WriteLine(Marshal.ReadIntPtr(unmanagedArray, i))
Next i
      
[C#] 
IntPtr unmanagedArray = ...;
// One way to print the 10 elements of the C-style unmanagedArray
byte [] newArray = new IntPtr[10];
Marshal.Copy(unmanagedArray, newArray, 0, 10);
for (int i = 0; i < newArray.Length; i++)
  Console.WriteLine(newArray[i]);
// Another way to print the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
  Console.WriteLine(Marshal.ReadIntPtr(unmanagedArray, i));
      

[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button Language Filter in the upper-left corner of the page.

See Also

Marshal Class | Marshal Members | System.Runtime.InteropServices Namespace

Show:
© 2015 Microsoft