Marshal.WriteInt64 Метод

Определение

Записывает 64-разрядное целое число со знаком в неуправляемую память. Поддерживается запись в неуправляемые расположения памяти.

Перегрузки

Имя Описание
WriteInt64(Object, Int32, Int64)
Устаревшие.

Записывает 64-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt64(IntPtr, Int64)

Записывает 64-разрядное целое число со знаком в неуправляемую память.

WriteInt64(IntPtr, Int32, Int64)

Записывает 64-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt64(Object, Int32, Int64)

Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs

Внимание!

WriteInt64(Object, Int32, Int64) may be unavailable in future releases.

Записывает 64-разрядное целое число со знаком в неуправляемую память с указанным смещением.

public:
 static void WriteInt64(System::Object ^ ptr, int ofs, long val);
[System.Obsolete("WriteInt64(Object, Int32, Int64) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static void WriteInt64(object ptr, int ofs, long val);
[System.Obsolete("WriteInt64(Object, Int32, Int64) may be unavailable in future releases.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static void WriteInt64(object ptr, int ofs, long val);
[System.Obsolete("WriteInt64(Object, Int32, Int64) may be unavailable in future releases.")]
public static void WriteInt64(object ptr, int ofs, long val);
public static void WriteInt64(object ptr, int ofs, long val);
[System.Security.SecurityCritical]
public static void WriteInt64(object ptr, int ofs, long val);
[<System.Obsolete("WriteInt64(Object, Int32, Int64) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member WriteInt64 : obj * int * int64 -> unit
[<System.Obsolete("WriteInt64(Object, Int32, Int64) may be unavailable in future releases.")>]
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member WriteInt64 : obj * int * int64 -> unit
[<System.Obsolete("WriteInt64(Object, Int32, Int64) may be unavailable in future releases.")>]
static member WriteInt64 : obj * int * int64 -> unit
static member WriteInt64 : obj * int * int64 -> unit
[<System.Security.SecurityCritical>]
static member WriteInt64 : obj * int * int64 -> unit
Public Shared Sub WriteInt64 (ptr As Object, ofs As Integer, val As Long)

Параметры

ptr
Object

Базовый адрес в неуправляемой памяти целевого объекта.

ofs
Int32

Дополнительное смещение байтов, которое добавляется в параметр перед записью ptr .

val
Int64

Значение для записи.

Атрибуты

Исключения

Базовый адрес (ptr) плюс байт смещения (ofs) создает недопустимый или пустой адрес.

ptr ArrayWithOffset— это объект. Этот метод не принимает ArrayWithOffset параметры.

Комментарии

WriteInt64 позволяет напрямую взаимодействовать с неуправляемым 64-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt64(IntPtr, Int64)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Записывает 64-разрядное целое число со знаком в неуправляемую память.

public:
 static void WriteInt64(IntPtr ptr, long val);
[System.Security.SecurityCritical]
public static void WriteInt64(IntPtr ptr, long val);
public static void WriteInt64(IntPtr ptr, long val);
[<System.Security.SecurityCritical>]
static member WriteInt64 : nativeint * int64 -> unit
static member WriteInt64 : nativeint * int64 -> unit
Public Shared Sub WriteInt64 (ptr As IntPtr, val As Long)

Параметры

ptr
IntPtr

nativeint

Адрес в неуправляемой памяти для записи.

val
Int64

Значение для записи.

Атрибуты

Исключения

ptr не является распознаваемым форматом.

–или–

ptr равно null.

–или–

ptr недопустим.

Примеры

В следующем примере показано, как считывать и записывать данные в неуправляемый массив с помощью ReadInt64 методов и 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

Комментарии

WriteInt64 позволяет напрямую взаимодействовать с неуправляемым 64-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt64(IntPtr, Int32, Int64)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Записывает 64-разрядное целое число со знаком в неуправляемую память с указанным смещением.

public:
 static void WriteInt64(IntPtr ptr, int ofs, long val);
[System.Security.SecurityCritical]
public static void WriteInt64(IntPtr ptr, int ofs, long val);
public static void WriteInt64(IntPtr ptr, int ofs, long val);
[<System.Security.SecurityCritical>]
static member WriteInt64 : nativeint * int * int64 -> unit
static member WriteInt64 : nativeint * int * int64 -> unit
Public Shared Sub WriteInt64 (ptr As IntPtr, ofs As Integer, val As Long)

Параметры

ptr
IntPtr

nativeint

Базовый адрес в неуправляемой памяти для записи.

ofs
Int32

Дополнительное смещение байтов, которое добавляется в параметр перед записью ptr .

val
Int64

Значение для записи.

Атрибуты

Исключения

Базовый адрес (ptr) плюс байт смещения (ofs) создает недопустимый или пустой адрес.

Примеры

В следующем примере показано, как считывать и записывать данные в неуправляемый массив с помощью ReadInt64 методов и 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

Комментарии

WriteInt64 позволяет напрямую взаимодействовать с неуправляемым 64-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к