como indica en la MSDN, el 4 parametro debe ser un puntero a la variable que recibe los bytes leidos y, debemos poner el operador & (la memoria de un puntero). ahora bien, si lo hago en masm, EN TEORIA, no debe ser así???
addr coje la dirección de memoria del puntero (como & en C).
la pregunta es, no debería ser asi?
Título: Re: duda punteros masm
Publicado por: Eternal Idol en Martes 20 de Julio de 2010, 10:45
Al no ver tu codigo estoy adivinando pero me imagino que tenes que usar offset en lugar de addr si bytesleidos es un dato del segmento data.
.data bytesleidos dd 0
Mas info: http://www.hitxp.com/comp/pro/asm/120403.htm (http://www.hitxp.com/comp/pro/asm/120403.htm" onclick="window.open(this.href);return false;)
Título: Re: duda punteros masm
Publicado por: mdmfl en Martes 20 de Julio de 2010, 19:18
sí, la variable es así... pero no es lo que pregunto. lo que digo es q en C se cuando poner el operador & (para la direccion d memoria), pero en masm veo que ponen la dirección de memoria en otros parámetros que en C no se pondría....
Título: Re: duda punteros masm
Publicado por: Eternal Idol en Miércoles 21 de Julio de 2010, 11:45
No entiendo, tal vez si das un ejemplo logre comprender la diferencia que ves.
Título: Re: duda punteros masm
Publicado por: mdmfl en Miércoles 21 de Julio de 2010, 20:10
lo traducí así de C... como ves, en bytesleidos (en el de asm) no tengo puesto entre [], porque se debe de pasar la dirección de memoria, no? traducido así, en teoría debe estar bien, pero ahora viene mi duda: vi algunos codigos, q dejaban la variable buffer sin [] pq se le tenia q pasar la dirección de memoria. pero en c no se hace...
entonces, que hago?
Título: Re: duda punteros masm
Publicado por: Eternal Idol en Jueves 22 de Julio de 2010, 01:50
El codigo original estaba bien, los corchetes no se usan para pasar la direccion de memoria, como te dije antes para eso se usa offset o addr, los corchetes se usan para tomar el valor y en este caso no hacen falta.
Título: Re: duda punteros masm
Publicado por: mdmfl en Jueves 22 de Julio de 2010, 19:10
ya sé q los corchetes se usan para pasar tomar el valor, pero vi en algún ejemplo que no ponían la corcheta en el buffer...
Título: Re: duda punteros masm
Publicado por: Eternal Idol en Jueves 22 de Julio de 2010, 23:59
Si, no hace falta como ya te habia dicho antes, si no los pones igual el ensamblador genera este codigo:
Código: ASM
pushdwordptr[lpBuffer]
Título: Re: duda punteros masm
Publicado por: mdmfl en Viernes 23 de Julio de 2010, 11:35
conclusión, es mejor poner los corchetes a buffer. muchas gracias Eternal!