Marshal.WriteByte Método

Definición

Escribe un único byte en la memoria no administrada.Writes a single byte value to unmanaged memory.

Sobrecargas

WriteByte(Object, Int32, Byte)
Obsoleto.

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.Writes a single byte value to unmanaged memory at a specified offset.

WriteByte(IntPtr, Int32, Byte)

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.Writes a single byte value to unmanaged memory at a specified offset.

WriteByte(IntPtr, Byte)

Escribe un único byte en la memoria no administrada.Writes a single byte value to unmanaged memory.

WriteByte(Object, Int32, Byte)

Precaución

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

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.Writes a single byte value to unmanaged memory at a specified offset.

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

Parámetros

ptr
Object

Dirección base en la memoria no administrada del objeto de destino.The base address in unmanaged memory of the target object.

ofs
Int32

Desplazamiento de bytes adicional, que se agrega al parámetro ptr antes de la escritura.An additional byte offset, which is added to the ptr parameter before writing.

val
Byte

Valor que se va a escribir.The value to write.

Atributos

Excepciones

La dirección base (ptr) más el byte de desplazamiento (ofs) produce un valor null o una dirección no válida.Base address (ptr) plus offset byte (ofs) produces a null or invalid address.

ptr es un objeto ArrayWithOffset.ptr is an ArrayWithOffset object. Este método no acepta parámetros ArrayWithOffset.This method does not accept ArrayWithOffset parameters.

Comentarios

WriteByte habilita la interacción directa con una matriz de bytes de estilo C no administrada, lo que elimina el gasto de copiar una matriz no administrada completa (mediante Marshal.Copy ) en una matriz administrada independiente antes de establecer los valores de los elementos.WriteByte enables direct interaction with an unmanaged C-style byte array, eliminating the expense of copying an entire unmanaged array (using Marshal.Copy) to a separate managed array before setting its element values.

Consulte también

Se aplica a

WriteByte(IntPtr, Int32, Byte)

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.Writes a single byte value to unmanaged memory at a specified offset.

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

Parámetros

ptr
IntPtr

Dirección base de la memoria no administrada en la que se va a escribir.The base address in unmanaged memory to write to.

ofs
Int32

Desplazamiento de bytes adicional, que se agrega al parámetro ptr antes de la escritura.An additional byte offset, which is added to the ptr parameter before writing.

val
Byte

Valor que se va a escribir.The value to write.

Atributos

Excepciones

La dirección base (ptr) más el byte de desplazamiento (ofs) produce un valor null o una dirección no válida.Base address (ptr) plus offset byte (ofs) produces a null or invalid address.

Ejemplos

En el ejemplo siguiente se muestra cómo leer y escribir en una matriz no administrada mediante ReadByte los WriteByte métodos y.The following example demonstrates how to read and write to an unmanaged array using the ReadByte and WriteByte methods.

static void ReadWriteByte()
{
    // Allocate unmanaged memory. 
    int elementSize = 1;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteByte(unmanagedArray, i * elementSize, ((Byte)(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.ReadByte(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}
Sub ReadWriteByte()
    ' Allocate unmanaged memory. 
    Dim elementSize As Integer = 1
    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.WriteByte(unmanagedArray, i * elementSize, CType(i + 1, Byte))
    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.ReadByte(unmanagedArray, i * elementSize))
    Next i

    Marshal.FreeHGlobal(unmanagedArray)

    Console.WriteLine("Done. Press Enter to continue.")
    Console.ReadLine()
End Sub

Comentarios

WriteByte habilita la interacción directa con una matriz de bytes de estilo C no administrada, lo que elimina el gasto de copiar una matriz no administrada completa (mediante Marshal.Copy ) en una matriz administrada independiente antes de establecer los valores de los elementos.WriteByte enables direct interaction with an unmanaged C-style byte array, eliminating the expense of copying an entire unmanaged array (using Marshal.Copy) to a separate managed array before setting its element values.

Consulte también

Se aplica a

WriteByte(IntPtr, Byte)

Escribe un único byte en la memoria no administrada.Writes a single byte value to unmanaged memory.

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

Parámetros

ptr
IntPtr

Dirección de la memoria no administrada en la que se va a escribir.The address in unmanaged memory to write to.

val
Byte

Valor que se va a escribir.The value to write.

Atributos

Excepciones

ptr no es un formato reconocido.ptr is not a recognized format.

o bien-or- ptr es null.ptr is null.

o bien-or- ptr no es válido.ptr is invalid.

Ejemplos

En el ejemplo siguiente se crea un bloque de memoria no administrada, se escribe un byte en la memoria no administrada, se lee el byte de la memoria no administrada y, a continuación, se desecha la memoria no administrada.The following example creates a block of unmanaged memory, writes a byte to the unmanaged memory, reads the byte back from unmanaged memory, and then disposes the unmanaged memory.

using System;
using System.Runtime.InteropServices;

 class Example
 {
     static void Main(string[] args)
     {
          // Allocate 1 byte of unmanaged memory.
          IntPtr hGlobal = Marshal.AllocHGlobal(1);

          // Create a new byte.
          byte b = 1;
          Console.WriteLine("Byte written to unmanaged memory: " + b);

          // Write the byte to unmanaged memory.
          Marshal.WriteByte(hGlobal, b);

          // Read byte from unmanaged memory.
          byte c = Marshal.ReadByte(hGlobal);
          Console.WriteLine("Byte read from unmanaged memory: " + c);

          // Free the unmanaged memory.
          Marshal.FreeHGlobal(hGlobal);
          Console.WriteLine("Unmanaged memory was disposed.");
     }
}
Imports System.Runtime.InteropServices

Module Example
    Sub Main()
         ' Allocate 1 byte of unmanaged memory.
         Dim hGlobal As IntPtr = Marshal.AllocHGlobal(1)
         
         ' Create a new byte.
         Dim b As Byte = 1
         
         Console.WriteLine("Byte written to unmanaged memory: {0}", b)
         
         ' Write the byte to unmanaged memory.
         Marshal.WriteByte(hGlobal, b)
         
         ' Read byte from unmanaged memory.
         Dim c As Byte = Marshal.ReadByte(hGlobal)
         Console.WriteLine("Byte read from unmanaged memory: {0}", c)
         
         ' Free the unmanaged memory.
         Marshal.FreeHGlobal(hGlobal)
         Console.WriteLine("Unmanaged memory was disposed.")
    End Sub
End Module

Comentarios

WriteByte habilita la interacción directa con una matriz de bytes de estilo C no administrada, lo que elimina el gasto de copiar una matriz no administrada completa (mediante Marshal.Copy ) en una matriz administrada independiente antes de establecer los valores de los elementos.WriteByte enables direct interaction with an unmanaged C-style byte array, eliminating the expense of copying an entire unmanaged array (using Marshal.Copy) to a separate managed array before setting its element values.

Consulte también

Se aplica a