Problema al limpiar variable

Iniciado por Vaagish, 11 Abril 2013, 22:45 PM

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

MCKSys Argentina

Cita de: Flamer en 13 Abril 2013, 18:40 PM
no son cadenas como en lenguajes de alto nivel y si estoy mal corrijanme

Cuando usas APIs de Windows desde MASM, el concepto de szstring se define como una secuencia de bytes que termina en un byte nulo (osea 0 en ASCII).

Osea, que cuando llamas, por ej. a MessageBoxA, en el parametro lpText debes pasar un ptr a una szstring. Mas info: http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Flamer

Citar
Cuando usas APIs de Windows desde MASM,
el concepto de szstring se define como una
secuencia de bytes que termina en un byte
nulo (osea 0 en ASCII).
esa secuensia de bytes estan almasenadas en posiciones de memoria a la cual para acceder a ellas hacemos referencia a una variable la cual acupa dicho espacio en memoria, no creo que interponiendo un cero en medio evite leer los demas bytes siguientes si dicho espacio es parte de la variable asignada.

Nota: si tengo tiempo boy a ser pruebas en mi pc aver que pasa ya que lo que digo son solo opiniones.

Saludos flamer y para limpiar la variable tienes que sobreescribir todo o llenarla de ceros

Eternal Idol

http://en.wikipedia.org/wiki/Null_terminated_string

El problema aca no es ese igual, la historia es que recv no trabaja con cadenas y con poner en 0 el primer byte no es suficiente si por ejemplo pasa esta secuencia:

1) recv lee la cadena "hola"
2) ponemos 0 en el primer caracter
3) recv lee la cadena bol

¿Y donde esta el terminador de cadena? ¿En el primer caracter que ahora es 'b'? En fin, que limpie todo o sino que ponga el terminador usando de base el tamaño que devuelve recv que para algo esta.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Vaagish

memfill funciono bien y rapido.. pero lo que dice Eternal es buena opcion.. el tamaño de la 'cadena' esta dada en recv,, seria poner un 0 al final y listo.. ;)