Marshal.WriteInt32 Método

Definição

Escreve um valor inteiro assinado de 32 bits na memória não gerida. A escrita em locais de memória desalinhados é suportada.

Sobrecargas

Name Description
WriteInt32(IntPtr, Int32)

Escreve um valor inteiro assinado de 32 bits na memória não gerida.

WriteInt32(IntPtr, Int32, Int32)

Grava um valor inteiro assinado de 32 bits na memória não gerida a um deslocamento especificado.

WriteInt32(Object, Int32, Int32)
Obsoleto.

Escreve um valor inteiro assinado de 32 bits na memória não gerida num deslocamento especificado.

WriteInt32(IntPtr, Int32)

Escreve um valor inteiro assinado de 32 bits na memória não gerida.

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

Parâmetros

ptr
IntPtr

nativeint

O endereço na memória não gerida para escrever.

val
Int32

O valor a escrever.

Atributos

Exceções

ptr não é um formato reconhecido.

-ou-

ptr é null.

-ou-

ptr é inválido.

Exemplos

O exemplo seguinte demonstra como ler e escrever num array não gerido usando os ReadInt32 métodos e.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

Observações

WriteInt32 permite a interação direta com um array de assinatura não gerido de 32 bits, eliminando o custo de copiar um array inteiro não gerido (usando Marshal.Copy) para um array gerido separado antes de definir os valores dos seus elementos.

A escrita em locais de memória desalinhados é suportada.

Ver também

Aplica-se a

WriteInt32(IntPtr, Int32, Int32)

Grava um valor inteiro assinado de 32 bits na memória não gerida a um deslocamento especificado.

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

Parâmetros

ptr
IntPtr

nativeint

O endereço base na memória não gerida para escrever.

ofs
Int32

Um deslocamento adicional de byte, que é adicionado ao ptr parâmetro antes da escrita.

val
Int32

O valor a escrever.

Atributos

Exceções

O endereço base (ptr) mais o byte offset (ofs) produz um endereço nulo ou inválido.

Exemplos

O exemplo seguinte demonstra como ler e escrever num array não gerido usando os ReadInt32 métodos e.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

Observações

WriteInt32 permite a interação direta com um array de assinatura não gerido de 32 bits, eliminando o custo de copiar um array inteiro não gerido (usando Marshal.Copy) para um array gerido separado antes de definir os valores dos seus elementos.

A escrita em locais de memória desalinhados é suportada.

Ver também

Aplica-se a

WriteInt32(Object, Int32, Int32)

Atenção

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

Escreve um valor inteiro assinado de 32 bits na memória não gerida num deslocamento especificado.

public:
 static void WriteInt32(System::Object ^ ptr, int ofs, int val);
[System.Obsolete("WriteInt32(Object, Int32, Int32) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static void WriteInt32(object ptr, int ofs, int val);
public static void WriteInt32(object ptr, int ofs, int val);
[System.Security.SecurityCritical]
public static void WriteInt32(object ptr, int ofs, int val);
[System.Obsolete("WriteInt32(Object, Int32, Int32) may be unavailable in future releases.")]
public static void WriteInt32(object ptr, int ofs, int val);
[<System.Obsolete("WriteInt32(Object, Int32, Int32) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member WriteInt32 : obj * int * int -> unit
static member WriteInt32 : obj * int * int -> unit
[<System.Security.SecurityCritical>]
static member WriteInt32 : obj * int * int -> unit
[<System.Obsolete("WriteInt32(Object, Int32, Int32) may be unavailable in future releases.")>]
static member WriteInt32 : obj * int * int -> unit
Public Shared Sub WriteInt32 (ptr As Object, ofs As Integer, val As Integer)

Parâmetros

ptr
Object

O endereço base na memória não gerida do objeto alvo.

ofs
Int32

Um deslocamento adicional de byte, que é adicionado ao ptr parâmetro antes da escrita.

val
Int32

O valor a escrever.

Atributos

Exceções

O endereço base (ptr) mais o byte offset (ofs) produz um endereço nulo ou inválido.

ptr é um ArrayWithOffset objeto. Este método não aceita ArrayWithOffset parâmetros.

Observações

WriteInt32 permite a interação direta com um array de assinatura não gerido de 32 bits, eliminando o custo de copiar um array inteiro não gerido (usando Marshal.Copy) para um array gerido separado antes de definir os valores dos seus elementos.

A escrita em locais de memória desalinhados é suportada.

Ver também

Aplica-se a