elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [pliss] copiar matriz de byte en una estructura
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [pliss] copiar matriz de byte en una estructura  (Leído 2,580 veces)
_katze_

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
[pliss] copiar matriz de byte en una estructura
« en: 19 Enero 2012, 21:47 pm »

hola amigos quisiera saber y de que manera podria copiar una matriz de byte en una estructura, intente con marshall pero me da error, y se que rtlmovememory podria pero quisiera ver algo que sea nativo.gracias


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: [pliss] copiar matriz de byte en una estructura
« Respuesta #1 en: 20 Enero 2012, 02:41 am »

Hola, aca un ejemplo de VB .NET para hacer eso, hay mucha info en internet de esto igual, mucho para C#.

Código
  1. Imports System
  2. Imports System.Runtime.InteropServices
  3.  
  4. Public Class Form1
  5.  
  6.    <StructLayout(LayoutKind.Sequential, Pack:=1)> _
  7.    Private Structure MyStruct
  8.        Public id As Integer
  9.        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=20)> _
  10.        Public text As String
  11.    End Structure
  12.  
  13.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  14.  
  15.        'Llenamos la estructura con algunos datos
  16.        Dim msg As MyStruct
  17.        msg.id = 888
  18.        msg.text = "Holaaaaaa1"
  19.  
  20.        'La convertimos a Bytes
  21.        Dim bytes As Byte() = StructToByteArray(msg)
  22.  
  23.        'Convertimos el array de bytes a la estructura nuevamente
  24.        Dim msg2 As MyStruct = ByteArrayToStruct(bytes)
  25.        MsgBox(msg2.id)
  26.        MsgBox(msg2.text)
  27.  
  28.    End Sub
  29.  
  30.    Private Function ByteArrayToStruct(ByVal bytes As Byte()) As MyStruct
  31.        Dim handle As GCHandle = GCHandle.Alloc(bytes, GCHandleType.Pinned)
  32.        Dim stuff As MyStruct = DirectCast(Marshal.PtrToStructure(handle.AddrOfPinnedObject(), GetType(MyStruct)), MyStruct)
  33.        handle.Free()
  34.        Return stuff
  35.    End Function
  36.  
  37.    Private Function StructToByteArray(ByVal logFont As MyStruct) As Byte()
  38.        Dim length As Integer = Marshal.SizeOf(logFont)
  39.        Dim ptPoint As IntPtr = Marshal.AllocHGlobal(length)
  40.        Marshal.StructureToPtr(logFont, ptPoint, True)
  41.        Dim bff As Byte() = New Byte(length - 1) {}
  42.        Marshal.Copy(ptPoint, bff, 0, length)
  43.        Marshal.FreeHGlobal(ptPoint)
  44.        Return bff
  45.    End Function
  46. End Class
  47.  


En línea

_katze_

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: [pliss] copiar matriz de byte en una estructura
« Respuesta #2 en: 20 Enero 2012, 04:34 am »

leo pruebo y te digo, gracias, la verdad no encontre pero lo mas seguro busque mal.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
EddyW 2 6,017 Último mensaje 14 Agosto 2010, 06:18 am
por EddyW
Acceder a una matriz dentro de una estructura ?
Programación C/C++
d00ze13 5 5,410 Último mensaje 2 Enero 2011, 20:52 pm
por Garfield07
Matriz Dentro de otra matriz
Programación Visual Basic
moba741120 3 6,929 Último mensaje 13 Abril 2011, 18:29 pm
por raul338
[Sources Code] RotBits [Byte TO Byte ]
Programación Visual Basic
x64core 8 5,683 Último mensaje 22 Octubre 2011, 00:46 am
por BlackZeroX
Copiar estructura de DVD
Multimedia
Fres 3 4,669 Último mensaje 20 Junio 2020, 13:14 pm
por Machacador
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines