Autor Tema: Pregunta Fillmemory  (Leído 3829 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Pregunta Fillmemory
« en: Junio 22, 2011, 08:10:52 pm »
Una pregunta, alguna mara de llenar un array con un determinado byte, algo asi como fillmemory api?

_katze_

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +2/-0
    • Ver Perfil
Re:Pregunta Fillmemory
« Respuesta #1 en: Junio 24, 2011, 01:21:06 am »
cobein en este namespace :System.Runtime.InteropServices se encuentra una clase llamada marshall es para uso no administrado de memoria y una forma de copiar bloques de momoria cosas asi quisas sea la respuesta.o si puedes subir un ejemplo de lo que necesitas quizas lo pueda pasar...de ultima haces un pinvoke al api fillmemory y la usas a esa.
edito. sino puedes usar la misma clase array para hacer algo parecido a lo que pides...mejor si pones un ejemplo chango.
« última modificación: Junio 24, 2011, 01:34:56 am por _katze_ »

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Pregunta Fillmemory
« Respuesta #2 en: Junio 26, 2011, 02:31:59 pm »
Esto es basicamente lo que necesito

Código: [Seleccionar]
    Private Sub FillMem(ByRef bytevBuffer() As Byte, ByVal byteData As Byte)
        Dim i As Integer
        For i = 0 To UBound(bytevBuffer)
            bytevBuffer(i) = byteData
        Next
    End Sub

No creo que esta sea la manera mas eficiente pero por ahora es lo unico que me funciona.

_katze_

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +2/-0
    • Ver Perfil
Re:Pregunta Fillmemory
« Respuesta #3 en: Junio 27, 2011, 01:34:52 pm »
chango la clase array es de array en array y el marshal practicamente lo mismo...mmm...te corrijo algo en tu code y es q al estar en .net tienes q usar lo de .net mas halla qque halla soporte para las funciones de vb6....ya te ago el pinvoke del fillmemory asi la uses a esa que esa valida tmb.
Código: [Seleccionar]
Private Sub FillMem(ByRef bytevBuffer() As Byte, ByVal byteData As Byte)
        Dim i As Integer
        For i = 0 To bytevBuffer.Length - 1 'no usar ubound

            bytevBuffer(i) = byteData

        Next

    End Sub

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Pregunta Fillmemory
« Respuesta #4 en: Junio 27, 2011, 07:34:37 pm »
Buen punto, es la costumbre del 6

_katze_

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +2/-0
    • Ver Perfil
Re:Pregunta Fillmemory
« Respuesta #5 en: Junio 27, 2011, 11:38:55 pm »
si locura es la costumbre ami tambien me paso y hasta pasa por eso desactivo ese namespace jej


este link te puede servir seguro estas trabajando con esto http://www.codeproject.com/KB/vb/Marshal.aspx

y te paso mas o menos el pinvoke del fillmemory no encontre pero lo armo yo

Código: [Seleccionar]
Private Sub FillMemory _
 (ByVal Destination As Byte, ByVal Length As Long, ByVal Fill As Byte)
    End Sub

importa el espacio system.runtime.interopservices

seguimos en linea cualquier cosa