Sobre Byref
Publicado: 27 Ene 2012, 15:25
A ver si sabéis explicarme esta keyword, para que termine de entenderla en AutoIt, porque la ayuda habla de ella muy de pasada.
Parece, que Byref es para pasar un parámetro por referencia, a una función.
Entonces, teniendo en cuenta que "pasar parámetros por referencia" es ni más ni menos que pasar la dirección de memoria de una variable, supongo que eso será exactamente lo que se haga con Byref ¿no? (aunque en AutoIt no se pueda manipular esa dirección de memoria como en C).
Pero, la duda es, si puede sacarse de la función que la recibe, esa dirección de memoria.
Por ejemplo:
Si hago esto:
¿"RecibeNumero()" qué devuelve, el contenido de "$MyVar" o la dirección de memoria?. Ya se, que para AutoIt devuelve "1234", que es lo que hay en $MyVar, que al fin y al cabo es lo mismo que hay en esa dirección de memoria, pero me refiero internamente...
O, por ejemplo: en el ejemplo anterior, "RecibeNumero()" ¿Podría pasar "$Arg" a una dll, por ejemplo, para que esta accediera a "$MyVar"?.
Vaya, me refiero a que si pasara "$Arg" a una dll ¿le estaría pasando realmente la dirección de memoria?.
Salu2!
Parece, que Byref es para pasar un parámetro por referencia, a una función.
Entonces, teniendo en cuenta que "pasar parámetros por referencia" es ni más ni menos que pasar la dirección de memoria de una variable, supongo que eso será exactamente lo que se haga con Byref ¿no? (aunque en AutoIt no se pueda manipular esa dirección de memoria como en C).
Pero, la duda es, si puede sacarse de la función que la recibe, esa dirección de memoria.
Por ejemplo:
Si hago esto:
Código: Seleccionar todo
Global $MyVar=1234
RecibeNumero($MyVar)
Func RecibeNumero(Byref $Arg)
Return $Arg
EndFunc
O, por ejemplo: en el ejemplo anterior, "RecibeNumero()" ¿Podría pasar "$Arg" a una dll, por ejemplo, para que esta accediera a "$MyVar"?.
Vaya, me refiero a que si pasara "$Arg" a una dll ¿le estaría pasando realmente la dirección de memoria?.
Salu2!