Lo que debe realmente saber es que tipo de String es... Unicole o ANSI, en vb6 el tipo String es Unicode es decir que SOLO debe transformar el tipo ANSI a Unicode... pero no es cuarlquier tipo de String es un BSTR
4Bytes : Longitud.
(Lotitud*2) Bytes: Datos.
2 Bytes de Terminación.
Lo que debe de hacer el compañero es:
1.- Copiar N Bytes en una cadena String o un Array de Bytes (segun el caso: ANSI = Array de Bytes, UNICODE = String) con un Buffer X (Anticipadamente)
2.- Verificar si lo copiado es de tipo ANSI.
2.1.- Para ANSI Cada caracter No debe tener una separacion de un Byte en valor 0.
2.2.- Para Unicode Cada Caracter deberia tener un Byte 0 y los 2 ultimos bytes serian 2 bytes en valor 0 (NULOS)
3.A.- Para el caso de que sea Unicode No hacer Nada (Solo fizear los espacios entre cada caracter y dejarlos en byte 0, almenos que sean caracteres ESPECIALES como caracteres CHINOS etc...).
3.A.- Para el caso de que sea una cadena tipo ANSI debera realizar un for next desde el indice inferior al mazimo y asignarlos en un String...:
'Puedo tener errores debido que lo hice aqui en el foro.
dim i as long
dim bData() as byte
dim sBuff as string
...
Codigo que copia el array de bytes aqui...
...
sBuff = space(Ubound(bData) + 1)
for i = 0 to Ubound(bData)
Mid$(sBuff, (i*2) ,1) = chr(bData(i))
next i
TODO lo puedes hacer con un array de bytes y despues solo intercalar puenteros... es un poco mas complejo si aun no sabes manipular estas cosillas.
Nopta: Recuerda Cambiar el parametro Size de ReadProcessMemomy (es el 4to parametro de izquierda a derecha) ya que este indica CUANTOS Bytes vas a copiar... aun asi leete mas la MSDN.
Dulces Lunas!¡.
Gracias!!
No me agrada ni poco VB6; por eso no perderé tiempo creando funciones que nunca usaré.
Te dejo aquí un proyecto (incompleto por desgracia) de un amigo del CE-F... el cual tiene lo que necesitas, una lectura en memoria se te haría fácil si usas la función ReadString.
Ojo, el proyecto en su totalidad (por tanto el crédito) pertenece a
Wiccan.
Salud.
Gracias!! Me ha servido
Suerte!