Marshal.ReadInt64 Metod

Definition

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

ptr är inte ett känt format.

-eller-

ptr är null.

-eller-

ptr är ogiltigt.

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.

Se även

Gäller för