Marshal.WriteInt64 メソッド

定義

64 ビット符号付き整数値をアンマネージ メモリに書き込みます。 アラインされていないメモリ位置への書き込みがサポートされています。

オーバーロード

名前 説明
WriteInt64(Object, Int32, Int64)
古い.

指定したオフセットでアンマネージ メモリに 64 ビット符号付き整数値を書き込みます。

WriteInt64(IntPtr, Int64)

64 ビット符号付き整数値をアンマネージ メモリに書き込みます。

WriteInt64(IntPtr, Int32, Int64)

指定したオフセットでアンマネージ メモリに 64 ビット符号付き整数値を書き込みます。

WriteInt64(Object, Int32, Int64)

注意事項

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);
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.")]
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
static member WriteInt64 : obj * int * int64 -> unit
[<System.Security.SecurityCritical>]
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
Public Shared Sub WriteInt64 (ptr As Object, ofs As Integer, val As Long)

パラメーター

ptr
Object

ターゲット オブジェクトのアンマネージ メモリ内のベース アドレス。

ofs
Int32

追加のバイト オフセット。書き込む前に ptr パラメーターに追加されます。

val
Int64

書き込む値。

属性

例外

ベース アドレス (ptr) とオフセット バイト (ofs) は、null または無効なアドレスを生成します。

ptrArrayWithOffset オブジェクトです。 このメソッドは、 ArrayWithOffset パラメーターを受け入れません。

注釈

WriteInt64 では、アンマネージ 64 ビット符号付き配列と直接対話できるため、要素値を設定する前にアンマネージド配列全体 ( Marshal.Copy を使用) を別のマネージド配列にコピーする手間が省けます。

アラインされていないメモリ位置への書き込みがサポートされています。

こちらもご覧ください

適用対象

WriteInt64(IntPtr, Int64)

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 が認識されない形式です。

-または-

ptrnullです。

-または-

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)

指定したオフセットでアンマネージ メモリに 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) は、null または無効なアドレスを生成します。

次の例では、 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 を使用) を別のマネージド配列にコピーする手間が省けます。

アラインされていないメモリ位置への書き込みがサポートされています。

こちらもご覧ください

適用対象