1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # StringToHGlobalAnsi: Copia el contenido de un String administrado en la memoria no administrada, convirtiéndolo en formato ANSI mientras realiza la copia. # PtrToStringAnsi: Asigna un String administrado y copia en él total o parcialmente una cadena ANSI (en Windows) o UTF-8 (en Unix) no administrada. $a = "hola" $b = "adios" # Dirección del primer carácter de la cadena no administrada. Dirección, en memoria no administrada, donde se copió la cadena o 0 si $a es null. $ptra = [Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($a); $ptra $ptrb = [Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($b); $ptrb # Diferencia entre los dos Ptr $diferencia = $ptrb.ToInt64() - $ptra.ToInt64() # Obtener el valor de una variable en base a una dirección Ptr de otra variable [Runtime.InteropServices.Marshal]::PtrToStringAnsi($ptra.ToInt64()+$diferencia) |
Obtener el valor de una variable utilizando otra variable mediante la dirección del primer carácter de la cadena no administrada en PowerShell utilizando la clase Marshal (PowerShell, Memoria, Lo mejor)
Except where otherwise noted, Jesusninoc by Jesús N. is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.