Marshal.ReadInt64 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 64-bitars signerat heltal från ohanterat minne. Läsning från ojusterade minnesplatser stöds.
Överlagringar
| Name | Description |
|---|---|
| ReadInt64(IntPtr) |
Läser ett 64-bitars signerat heltal från ohanterat minne. |
| ReadInt64(IntPtr, Int32) |
Läser ett 64-bitars signerat heltal vid en given förskjutning från ohanterat minne. |
| ReadInt64(Object, Int32) |
Föråldrad.
Läser ett 64-bitars signerat heltal vid en given förskjutning från ohanterat minne. |
ReadInt64(IntPtr)
Läser ett 64-bitars signerat heltal från ohanterat minne.
public:
static long ReadInt64(IntPtr ptr);
[System.Security.SecurityCritical]
public static long ReadInt64(IntPtr ptr);
public static long ReadInt64(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member ReadInt64 : nativeint -> int64
static member ReadInt64 : nativeint -> int64
Public Shared Function ReadInt64 (ptr As IntPtr) As Long
Parametrar
- ptr
-
IntPtr
nativeint
Adressen i ohanterat minne som ska läsas från.
Returer
Det 64-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 ReadInt64 metoderna och WriteInt64 .
static void ReadWriteInt64()
{
// Allocate unmanaged memory.
int elementSize = 8;
IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);
// Set the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Marshal.WriteInt64(unmanagedArray, i * elementSize, ((Int64)(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.ReadInt64(unmanagedArray, i * elementSize));
}
Marshal.FreeHGlobal(unmanagedArray);
Console.WriteLine("Done. Press Enter to continue.");
Console.ReadLine();
}
Sub ReadWriteInt64()
' Allocate unmanaged memory.
Dim elementSize As Integer = 8
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.WriteInt64(unmanagedArray, i * elementSize, CType(i + 1, Int64))
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.ReadInt64(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 ReadInt64 metoden för att läsa värdet för en ohanterad __int64 variabel.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged __int64.
__int64 myVal = 42;
// Read the value as a managed Int64.
Int64 ^ myManagedVal = Marshal::ReadInt64((IntPtr) &myVal);
// Display the value to the console.
Console::WriteLine(myManagedVal);
}
Kommentarer
ReadInt64 har en underförstådd förskjutning på 0. Den här metoden möjliggör direkt interaktion med en ohanterad C-matris Int64 , 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
ReadInt64(IntPtr, Int32)
Läser ett 64-bitars signerat heltal vid en given förskjutning från ohanterat minne.
public:
static long ReadInt64(IntPtr ptr, int ofs);
[System.Security.SecurityCritical]
public static long ReadInt64(IntPtr ptr, int ofs);
public static long ReadInt64(IntPtr ptr, int ofs);
[<System.Security.SecurityCritical>]
static member ReadInt64 : nativeint * int -> int64
static member ReadInt64 : nativeint * int -> int64
Public Shared Function ReadInt64 (ptr As IntPtr, ofs As Integer) As Long
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 64-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.
Exempel
I följande exempel visas hur du läser och skriver till en ohanterad matris med hjälp av ReadInt64 metoderna och WriteInt64 .
static void ReadWriteInt64()
{
// Allocate unmanaged memory.
int elementSize = 8;
IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);
// Set the 10 elements of the C-style unmanagedArray
for (int i = 0; i < 10; i++)
{
Marshal.WriteInt64(unmanagedArray, i * elementSize, ((Int64)(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.ReadInt64(unmanagedArray, i * elementSize));
}
Marshal.FreeHGlobal(unmanagedArray);
Console.WriteLine("Done. Press Enter to continue.");
Console.ReadLine();
}
Sub ReadWriteInt64()
' Allocate unmanaged memory.
Dim elementSize As Integer = 8
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.WriteInt64(unmanagedArray, i * elementSize, CType(i + 1, Int64))
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.ReadInt64(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 ReadInt64 metoden för att läsa värdet för en ohanterad __int64 variabel.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged __int64 pointer.
__int64 * myVal;
__int64 tmp = 42;
// Initialize it to another value.
myVal = &tmp;
// Read value as a managed Int64.
Int64 ^ myManagedVal = Marshal::ReadInt64((IntPtr) myVal, 0);
// Display the value to the console.
Console::WriteLine(myManagedVal);
}
Kommentarer
ReadInt64 möjliggör direkt interaktion med en ohanterad 64-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
ReadInt64(Object, Int32)
Varning
ReadInt64(Object, Int32) may be unavailable in future releases.
Läser ett 64-bitars signerat heltal vid en given förskjutning från ohanterat minne.
public:
static long ReadInt64(System::Object ^ ptr, int ofs);
[System.Obsolete("ReadInt64(Object, Int32) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static long ReadInt64(object ptr, int ofs);
public static long ReadInt64(object ptr, int ofs);
[System.Security.SecurityCritical]
public static long ReadInt64(object ptr, int ofs);
[System.Obsolete("ReadInt64(Object, Int32) may be unavailable in future releases.")]
public static long ReadInt64(object ptr, int ofs);
[<System.Obsolete("ReadInt64(Object, Int32) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member ReadInt64 : obj * int -> int64
static member ReadInt64 : obj * int -> int64
[<System.Security.SecurityCritical>]
static member ReadInt64 : obj * int -> int64
[<System.Obsolete("ReadInt64(Object, Int32) may be unavailable in future releases.")>]
static member ReadInt64 : obj * int -> int64
Public Shared Function ReadInt64 (ptr As Object, ofs As Integer) As Long
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 64-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
ReadInt64 möjliggör direkt interaktion med en ohanterad 64-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.