Marshal.ReadIntPtr Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yönetilmeyen bellekten işlemcinin yerel boyutlu tamsayısını okur. Hizalanmamış bellek konumlarından okuma desteklenir.
Aşırı Yüklemeler
ReadIntPtr(IntPtr, Int32) |
Yönetilmeyen bellekten belirli bir uzaklıkta işlemci yerel boyutlu bir tamsayı okur. |
ReadIntPtr(Object, Int32) |
Geçersiz.
Yönetilmeyen bellekten işlemcinin yerel boyutlu tamsayısını okur. |
ReadIntPtr(IntPtr) |
Yönetilmeyen bellekten yerel boyutlu işlemci tamsayısını okur. |
ReadIntPtr(IntPtr, Int32)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Yönetilmeyen bellekten belirli bir uzaklıkta işlemci yerel boyutlu bir tamsayı okur.
public:
static IntPtr ReadIntPtr(IntPtr ptr, int ofs);
[System.Security.SecurityCritical]
public static IntPtr ReadIntPtr (IntPtr ptr, int ofs);
public static IntPtr ReadIntPtr (IntPtr ptr, int ofs);
[<System.Security.SecurityCritical>]
static member ReadIntPtr : nativeint * int -> nativeint
static member ReadIntPtr : nativeint * int -> nativeint
Public Shared Function ReadIntPtr (ptr As IntPtr, ofs As Integer) As IntPtr
Parametreler
- ptr
-
IntPtr
nativeint
Yönetilmeyen bellekte okuması gereken temel adres.
- ofs
- Int32
Okumadan önce parametresine ptr
eklenen ek bir bayt uzaklığı.
Döndürülenler
nativeint
Verilen uzaklıkta yönetilmeyen bellekten okunan tamsayı.
- Öznitelikler
Özel durumlar
Temel adres (ptr
) artı uzaklık bayt (ofs
) null veya geçersiz bir adres üretir.
Örnekler
Aşağıdaki örnekte ve WriteIntPtr yöntemlerini kullanarak ReadIntPtr yönetilmeyen bir diziyi okuma ve yazma işlemleri gösterilmektedir.
static void ReadWriteIntPtr()
{
// Allocate unmanaged memory.
int elementSize = Marshal.SizeOf(typeof(IntPtr));
IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);
// Set the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Marshal.WriteIntPtr(unmanagedArray, i * elementSize, ((IntPtr)(i + 1)));
}
Console.WriteLine("Unmanaged memory written.");
Console.WriteLine("Reading unmanaged memory:");
// Print the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Marshal.ReadIntPtr(unmanagedArray, i * elementSize));
}
Marshal.FreeHGlobal(unmanagedArray);
Console.WriteLine("Done. Press Enter to continue.");
Console.ReadLine();
}
Sub ReadWriteIntPtr()
' Allocate unmanaged memory.
Dim elementSize As Integer = Marshal.SizeOf(GetType(IntPtr))
Dim unmanagedArray As IntPtr = Marshal.AllocHGlobal(10 * elementSize)
' Set the 10 elements of the C-style unmanagedArray
For i As Integer = 0 To 9
Marshal.WriteIntPtr(unmanagedArray, i * elementSize, CType(i + 1, IntPtr))
Next i
Console.WriteLine("Unmanaged memory written.")
Console.WriteLine("Reading unmanaged memory:")
' Print the 10 elements of the C-style unmanagedArray
For i As Integer = 0 To 9
Console.WriteLine(Marshal.ReadIntPtr(unmanagedArray, i * elementSize))
Next i
Marshal.FreeHGlobal(unmanagedArray)
Console.WriteLine("Done. Press Enter to continue.")
Console.ReadLine()
End Sub
Açıklamalar
ReadIntPtr yönetilmeyen bir C stili IntPtr
diziyle doğrudan etkileşime olanak sağlayarak, tüm yönetilmeyen diziyi (kullanarak Marshal.Copy) öğe değerlerini okumadan önce ayrı bir yönetilen diziye kopyalamanın masrafını ortadan kaldırır.
Hizalanmamış bellek konumlarından okuma desteklenir.
Ayrıca bkz.
Şunlara uygulanır
ReadIntPtr(Object, Int32)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Dikkat
ReadIntPtr(Object, Int32) may be unavailable in future releases.
Yönetilmeyen bellekten işlemcinin yerel boyutlu tamsayısını okur.
public:
static IntPtr ReadIntPtr(System::Object ^ ptr, int ofs);
[System.Obsolete("ReadIntPtr(Object, Int32) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static IntPtr ReadIntPtr (object ptr, int ofs);
[System.Obsolete("ReadIntPtr(Object, Int32) may be unavailable in future releases.")]
public static IntPtr ReadIntPtr (object ptr, int ofs);
public static IntPtr ReadIntPtr (object ptr, int ofs);
[System.Security.SecurityCritical]
public static IntPtr ReadIntPtr (object ptr, int ofs);
[<System.Obsolete("ReadIntPtr(Object, Int32) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member ReadIntPtr : obj * int -> nativeint
[<System.Obsolete("ReadIntPtr(Object, Int32) may be unavailable in future releases.")>]
static member ReadIntPtr : obj * int -> nativeint
static member ReadIntPtr : obj * int -> nativeint
[<System.Security.SecurityCritical>]
static member ReadIntPtr : obj * int -> nativeint
Public Shared Function ReadIntPtr (ptr As Object, ofs As Integer) As IntPtr
Parametreler
- ptr
- Object
Kaynak nesnenin yönetilmeyen belleğindeki temel adres.
- ofs
- Int32
Okumadan önce parametresine ptr
eklenen ek bir bayt uzaklığı.
Döndürülenler
nativeint
Verilen uzaklıkta yönetilmeyen bellekten okunan tamsayı.
- Öznitelikler
Özel durumlar
Temel adres (ptr
) artı uzaklık bayt (ofs
) null veya geçersiz bir adres üretir.
ptr
bir ArrayWithOffset nesnedir. Bu yöntem parametreleri kabul ArrayWithOffset etmez.
Açıklamalar
ReadIntPtr yönetilmeyen bir C stili IntPtr
diziyle doğrudan etkileşime olanak sağlayarak, tüm yönetilmeyen diziyi (kullanarak Marshal.Copy) öğe değerlerini okumadan önce ayrı bir yönetilen diziye kopyalamanın masrafını ortadan kaldırır.
Hizalanmamış bellek konumlarından okuma desteklenir.
Ayrıca bkz.
Şunlara uygulanır
ReadIntPtr(IntPtr)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Yönetilmeyen bellekten yerel boyutlu işlemci tamsayısını okur.
public:
static IntPtr ReadIntPtr(IntPtr ptr);
[System.Security.SecurityCritical]
public static IntPtr ReadIntPtr (IntPtr ptr);
public static IntPtr ReadIntPtr (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member ReadIntPtr : nativeint -> nativeint
static member ReadIntPtr : nativeint -> nativeint
Public Shared Function ReadIntPtr (ptr As IntPtr) As IntPtr
Parametreler
- ptr
-
IntPtr
nativeint
Yönetilmeyen bellekte okunacak adres.
Döndürülenler
nativeint
Yönetilmeyen bellekten okunan tamsayı. 32 bit makinelerde 32 bit tamsayı, 64 bit makinelerde ise 64 bit tamsayı döndürülür.
- Öznitelikler
Özel durumlar
ptr
tanınan bir biçim değildir.
-veya-
ptr
, null
değeridir.
-veya-
ptr
geçersizdir.
Örnekler
Aşağıdaki örnekte ve WriteIntPtr yöntemlerini kullanarak ReadIntPtr yönetilmeyen bir diziyi okuma ve yazma işlemleri gösterilmektedir.
static void ReadWriteIntPtr()
{
// Allocate unmanaged memory.
int elementSize = Marshal.SizeOf(typeof(IntPtr));
IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);
// Set the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Marshal.WriteIntPtr(unmanagedArray, i * elementSize, ((IntPtr)(i + 1)));
}
Console.WriteLine("Unmanaged memory written.");
Console.WriteLine("Reading unmanaged memory:");
// Print the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Marshal.ReadIntPtr(unmanagedArray, i * elementSize));
}
Marshal.FreeHGlobal(unmanagedArray);
Console.WriteLine("Done. Press Enter to continue.");
Console.ReadLine();
}
Sub ReadWriteIntPtr()
' Allocate unmanaged memory.
Dim elementSize As Integer = Marshal.SizeOf(GetType(IntPtr))
Dim unmanagedArray As IntPtr = Marshal.AllocHGlobal(10 * elementSize)
' Set the 10 elements of the C-style unmanagedArray
For i As Integer = 0 To 9
Marshal.WriteIntPtr(unmanagedArray, i * elementSize, CType(i + 1, IntPtr))
Next i
Console.WriteLine("Unmanaged memory written.")
Console.WriteLine("Reading unmanaged memory:")
' Print the 10 elements of the C-style unmanagedArray
For i As Integer = 0 To 9
Console.WriteLine(Marshal.ReadIntPtr(unmanagedArray, i * elementSize))
Next i
Marshal.FreeHGlobal(unmanagedArray)
Console.WriteLine("Done. Press Enter to continue.")
Console.ReadLine()
End Sub
Açıklamalar
ReadIntPtr 0 zımni uzaklığı vardır. Bu yöntem yönetilmeyen bir C stili IntPtr
diziyle doğrudan etkileşime olanak sağlayarak, tüm yönetilmeyen diziyi (kullanarak Marshal.Copy) öğe değerlerini okumadan önce ayrı bir yönetilen diziye kopyalamanın masrafını ortadan kaldırır.
Hizalanmamış bellek konumlarından okuma desteklenir.