|
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
|
Tradução
Original
|
Método Marshal.Copy (IntPtr, Byte[], Int32, Int32)
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Parâmetros
- source
- Tipo: System.IntPtr
O ponteiro de memória de copiar.
- destination
- Tipo: System.Byte[]
A matriz para copiar a.
- startIndex
- Tipo: System.Int32
O índice com base zero na matriz de destino onde copiar deve iniciar.
- length
- Tipo: System.Int32
O número de elementos da matriz para copiar.
| Exceção | Condição |
|---|---|
| ArgumentNullException |
using System; using System.Runtime.InteropServices; class Example { static void Main() { // Create a managed array. byte[] managedArray = { 1, 2, 3, 4 }; // Initialize unmanged memory to hold the array. int size = Marshal.SizeOf(managedArray[0]) * managedArray.Length; IntPtr pnt = Marshal.AllocHGlobal(size); try { // Copy the array to unmanaged memory. Marshal.Copy(managedArray, 0, pnt, managedArray.Length); // Copy the unmanaged array back to another managed array. byte[] managedArray2 = new byte[managedArray.Length]; Marshal.Copy(pnt, managedArray2, 0, managedArray.Length); Console.WriteLine("The array was coppied to unmanaged memory and back."); } finally { // Free the unmanaged memory. Marshal.FreeHGlobal(pnt); } } }
- SecurityCriticalAttribute
requer confiança total para o chamador imediato. Este membro não pode ser usado pelo código parcialmente confiável ou transparente.
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)
O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.