Hola a todo el mundo!
Mi aplicación almacena los datos de las imágenes en la memória, pero luego necestito recuperarlos en una variable String. El problema es que para mover datos de la memória solo he encontrado la API RtlMoveMemory, y no acepta variables tipo String, sólo de tipo numérico, así que tengo que mover todos los datos a un array de tipo Byte. Aquí está el código:
Declaración de la API
Código:
Private Declare Sub RtlMoveMemory Lib "kernel32" (ByRef des As Any, ByVal src As Long, ByVal cnt As Long)
Private Declare Function GlobalHandle Lib "kernel32" (ByVal Addr As Long) As Long
Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
Código (BufferAddress es la dirección en la memória donde están los datos):
Código:
Private Function GetImageData (BufferAddress As Long) As String
Dim BuffHandle As Long, BufferSize As Long
Dim ImageInMemory() As Byte
BuffHandle = GlobalHandle(BufferAddress)
BufferSize = GlobalSize(BuffHandle)
ReDim ImageInMemory(0 To BufferSize) As Byte
RtlMoveMemory ImageInMemory(0), BufferAddress, BufferSize
¿Que hago con el array?
He provado con hacer un bucle que vaya convirtiendo los valores del array en caracteres y los añada a una variable String, pero es muuuuuy lento. :(
Gracias
Tortoll