/// <summary> /// 指定したアドレスのメモリを sbyte 型の値として取得又は設定します。 /// </summary> /// <param name="address">読み書き対象の仮想アドレスを指定します。</param> public double this[int address] { get { double value = default(double); mem.ReadMemory((void *)address, &value, sizeof(double)); return(value); } set { mem.WriteMemory((void *)address, &value, sizeof(double)); } }
/// <summary> /// 指定したアドレスのメモリを sbyte 型の値として取得又は設定します。 /// </summary> /// <param name="address">読み書き対象の仮想アドレスを指定します。</param> public float this[int address] { get { float value = default(float); mem.ReadMemory((void *)address, &value, sizeof(float)); return(value); } set { mem.WriteMemory((void *)address, &value, sizeof(float)); } }
/// <summary> /// 指定したアドレスのメモリを sbyte 型の値として取得又は設定します。 /// </summary> /// <param name="address">読み書き対象の仮想アドレスを指定します。</param> public sbyte this[int address] { get { sbyte value = default(sbyte); mem.ReadMemory((void *)address, &value, sizeof(sbyte)); return(value); } set { mem.WriteMemory((void *)address, &value, sizeof(sbyte)); } }
/// <summary> /// 指定したアドレスのメモリを sbyte 型の値として取得又は設定します。 /// </summary> /// <param name="address">読み書き対象の仮想アドレスを指定します。</param> public ulong this[int address] { get { ulong value = default(ulong); mem.ReadMemory((void *)address, &value, sizeof(ulong)); return(value); } set { mem.WriteMemory((void *)address, &value, sizeof(ulong)); } }
/// <summary> /// 指定したアドレスのメモリを sbyte 型の値として取得又は設定します。 /// </summary> /// <param name="address">読み書き対象の仮想アドレスを指定します。</param> public ushort this[int address] { get { ushort value = default(ushort); mem.ReadMemory((void *)address, &value, sizeof(ushort)); return(value); } set { mem.WriteMemory((void *)address, &value, sizeof(ushort)); } }
public static void Write(ProcessMemory mem, void *addr, T value) { byte *p = stackalloc byte[size]; Interop::Marshal.StructureToPtr(value, (System.IntPtr)p, false); mem.WriteMemory(addr, p, size); }