Marshal.ReadInt32 Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser ett 32-bitars signerat heltal från ohanterat minne. Läsning från ojusterade minnesplatser stöds.
Överlagringar
| Name | Description |
|---|---|
| ReadInt32(IntPtr) |
Läser ett 32-bitars signerat heltal från ohanterat minne. |
| ReadInt32(IntPtr, Int32) |
Läser ett 32-bitars signerat heltal vid en given förskjutning från ohanterat minne. |
| ReadInt32(Object, Int32) |
Föråldrad.
Läser ett 32-bitars signerat heltal vid en given förskjutning från ohanterat minne. |
ReadInt32(IntPtr)
Läser ett 32-bitars signerat heltal från ohanterat minne.
public:
static int ReadInt32(IntPtr ptr);
[System.Security.SecurityCritical]
public static int ReadInt32(IntPtr ptr);
public static int ReadInt32(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member ReadInt32 : nativeint -> int
static member ReadInt32 : nativeint -> int
Public Shared Function ReadInt32 (ptr As IntPtr) As Integer
Parametrar
- ptr
-
IntPtr
nativeint
Adressen i ohanterat minne som ska läsas från.
Returer
Det 32-bitars signerade heltalet lästes från ohanterat minne.
- Attribut
Undantag
Exempel
I följande exempel visas hur du läser och skriver till en ohanterad matris med hjälp av ReadInt32 metoderna och WriteInt32 .
static void ReadWriteInt32()
{
// Allocate unmanaged memory.
int elementSize = 4;
IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);
// Set the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Marshal.WriteInt32(unmanagedArray, i * elementSize, ((Int32)(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.ReadInt32(unmanagedArray, i * elementSize));
}
Marshal.FreeHGlobal(unmanagedArray);
Console.WriteLine("Done. Press Enter to continue.");
Console.ReadLine();
}
Sub ReadWriteInt32()
' Allocate unmanaged memory.
Dim elementSize As Integer = 4
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.WriteInt32(unmanagedArray, i * elementSize, CType(i + 1, Int32))
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.ReadInt32(unmanagedArray, i * elementSize))
Next i
Marshal.FreeHGlobal(unmanagedArray)
Console.WriteLine("Done. Press Enter to continue.")
Console.ReadLine()
End Sub
I följande exempel visas hur du använder ReadInt32 metoden för att läsa värdet för en ohanterad int variabel.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged integer.
int myVal = 42;
// Read the int as a managed Int32.
Int32 ^ myManagedVal = Marshal::ReadInt32((IntPtr) &myVal);
// Display the value to the console.
Console::WriteLine(myManagedVal);
}
Kommentarer
ReadInt32 har en underförstådd förskjutning på 0. Den här metoden möjliggör direkt interaktion med en ohanterad C-matris Int32 , vilket eliminerar kostnaden för att kopiera en hel ohanterad matris (med hjälp Marshal.Copyav ) till en separat hanterad matris innan dess elementvärden läss.
Läsning från ojusterade minnesplatser stöds.
Se även
Gäller för
ReadInt32(IntPtr, Int32)
Läser ett 32-bitars signerat heltal vid en given förskjutning från ohanterat minne.
public:
static int ReadInt32(IntPtr ptr, int ofs);
[System.Security.SecurityCritical]
public static int ReadInt32(IntPtr ptr, int ofs);
public static int ReadInt32(IntPtr ptr, int ofs);
[<System.Security.SecurityCritical>]
static member ReadInt32 : nativeint * int -> int
static member ReadInt32 : nativeint * int -> int
Public Shared Function ReadInt32 (ptr As IntPtr, ofs As Integer) As Integer
Parametrar
- ptr
-
IntPtr
nativeint
Basadressen i ohanterat minne som ska läsas från.
- ofs
- Int32
En extra byteförskjutning, som läggs till i parametern ptr innan du läser.
Returer
Det 32-bitars signerade heltalet lästes från ohanterat minne.
- Attribut
Undantag
Basadressen (ptr) plus förskjutningsbyte (ofs) genererar en null- eller ogiltig adress.
Exempel
I följande exempel visas hur du läser och skriver till en ohanterad matris med hjälp av ReadInt32 metoderna och WriteInt32 .
static void ReadWriteInt32()
{
// Allocate unmanaged memory.
int elementSize = 4;
IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);
// Set the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Marshal.WriteInt32(unmanagedArray, i * elementSize, ((Int32)(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.ReadInt32(unmanagedArray, i * elementSize));
}
Marshal.FreeHGlobal(unmanagedArray);
Console.WriteLine("Done. Press Enter to continue.");
Console.ReadLine();
}
Sub ReadWriteInt32()
' Allocate unmanaged memory.
Dim elementSize As Integer = 4
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.WriteInt32(unmanagedArray, i * elementSize, CType(i + 1, Int32))
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.ReadInt32(unmanagedArray, i * elementSize))
Next i
Marshal.FreeHGlobal(unmanagedArray)
Console.WriteLine("Done. Press Enter to continue.")
Console.ReadLine()
End Sub
I följande exempel visas hur du använder ReadInt32 metoden för att läsa värdet för en ohanterad int variabel.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged int pointer.
int * myVal;
int tmp = 42;
// Initialize it to another value.
myVal = &tmp;
// Read value as a managed Int32.
Int32 ^ myManagedVal = Marshal::ReadInt32((IntPtr) myVal, 0);
// Display the value to the console.
Console::WriteLine(myManagedVal);
}
Kommentarer
ReadInt32 möjliggör direkt interaktion med en ohanterad 32-bitars signerad matris, vilket eliminerar kostnaden för att kopiera en hel ohanterad matris (med hjälp Marshal.Copyav ) till en separat hanterad matris innan dess elementvärden läss.
Läsning från ojusterade minnesplatser stöds.
Se även
Gäller för
ReadInt32(Object, Int32)
Varning
ReadInt32(Object, Int32) may be unavailable in future releases.
Läser ett 32-bitars signerat heltal vid en given förskjutning från ohanterat minne.
public:
static int ReadInt32(System::Object ^ ptr, int ofs);
[System.Obsolete("ReadInt32(Object, Int32) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static int ReadInt32(object ptr, int ofs);
public static int ReadInt32(object ptr, int ofs);
[System.Security.SecurityCritical]
public static int ReadInt32(object ptr, int ofs);
[System.Obsolete("ReadInt32(Object, Int32) may be unavailable in future releases.")]
public static int ReadInt32(object ptr, int ofs);
[<System.Obsolete("ReadInt32(Object, Int32) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member ReadInt32 : obj * int -> int
static member ReadInt32 : obj * int -> int
[<System.Security.SecurityCritical>]
static member ReadInt32 : obj * int -> int
[<System.Obsolete("ReadInt32(Object, Int32) may be unavailable in future releases.")>]
static member ReadInt32 : obj * int -> int
Public Shared Function ReadInt32 (ptr As Object, ofs As Integer) As Integer
Parametrar
- ptr
- Object
Basadressen i ohanterat minne för källobjektet.
- ofs
- Int32
En extra byteförskjutning, som läggs till i parametern ptr innan du läser.
Returer
Det 32-bitars signerade heltalet lästes från ohanterat minne vid den angivna förskjutningen.
- Attribut
Undantag
Basadressen (ptr) plus förskjutningsbyte (ofs) genererar en null- eller ogiltig adress.
ptr är ett ArrayWithOffset objekt. Den här metoden accepterar ArrayWithOffset inte parametrar.
Kommentarer
ReadInt32 möjliggör direkt interaktion med en ohanterad 32-bitars signerad matris, vilket eliminerar kostnaden för att kopiera en hel ohanterad matris (med hjälp Marshal.Copyav ) till en separat hanterad matris innan dess elementvärden läss.
Läsning från ojusterade minnesplatser stöds.