Skip to content

Commit 774ec6f

Browse files
committed
Replaced generic method with normal methods.
1 parent 9041ff4 commit 774ec6f

File tree

9 files changed

+47
-18
lines changed

9 files changed

+47
-18
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using System;
2+
using System.Text;
3+
using ReClassNET.Memory;
4+
5+
namespace ReClassNET.Extensions
6+
{
7+
public static class IRemoteMemoryWriterExtension
8+
{
9+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, sbyte value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
10+
11+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, byte value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
12+
13+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, short value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
14+
15+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, ushort value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
16+
17+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, int value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
18+
19+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, uint value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
20+
21+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, long value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
22+
23+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, ulong value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
24+
25+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, float value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
26+
27+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, double value) => writer.WriteRemoteMemory(address, writer.BitConverter.GetBytes(value));
28+
29+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, IntPtr value)
30+
{
31+
#if RECLASSNET64
32+
writer.WriteRemoteMemory(address, value.ToInt64());
33+
#else
34+
writer.WriteRemoteMemory(address, value.ToInt32());
35+
#endif
36+
}
37+
38+
public static void WriteRemoteMemory(this IRemoteMemoryWriter writer, IntPtr address, string value, Encoding encoding) => writer.WriteRemoteMemory(address, encoding.GetBytes(value));
39+
}
40+
}
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Text;
23
using ReClassNET.Util.Conversion;
34

45
namespace ReClassNET.Memory
@@ -12,12 +13,5 @@ public interface IRemoteMemoryWriter
1213
/// <param name="data">The data to write.</param>
1314
/// <returns>True if it succeeds, false if it fails.</returns>
1415
bool WriteRemoteMemory(IntPtr address, byte[] data);
15-
16-
/// <summary>Writes the given <paramref name="value"/> to the <paramref name="address"/> in the remote process.</summary>
17-
/// <typeparam name="T">Type of the value to write.</typeparam>
18-
/// <param name="address">The address to write to.</param>
19-
/// <param name="value">The value to write.</param>
20-
/// <returns>True if it succeeds, false if it fails.</returns>
21-
bool WriteRemoteMemory<T>(IntPtr address, T value) where T : struct;
2216
}
2317
}

ReClass.NET/Memory/RemoteProcess.cs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -345,17 +345,6 @@ public bool WriteRemoteMemory(IntPtr address, byte[] data)
345345
return coreFunctions.WriteRemoteMemory(handle, address, ref data, 0, data.Length);
346346
}
347347

348-
public bool WriteRemoteMemory<T>(IntPtr address, T value) where T : struct
349-
{
350-
var data = new byte[Marshal.SizeOf<T>()];
351-
352-
var gcHandle = GCHandle.Alloc(data, GCHandleType.Pinned);
353-
Marshal.StructureToPtr(value, gcHandle.AddrOfPinnedObject(), false);
354-
gcHandle.Free();
355-
356-
return WriteRemoteMemory(address, data);
357-
}
358-
359348
#endregion
360349

361350
public Section GetSectionToPointer(IntPtr address)

ReClass.NET/Nodes/BaseMatrixNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Diagnostics.Contracts;
33
using System.Drawing;
44
using ReClassNET.Controls;
5+
using ReClassNET.Extensions;
56
using ReClassNET.UI;
67

78
namespace ReClassNET.Nodes

ReClass.NET/Nodes/BitFieldNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Diagnostics.Contracts;
33
using System.Drawing;
44
using ReClassNET.Controls;
5+
using ReClassNET.Extensions;
56
using ReClassNET.Memory;
67
using ReClassNET.UI;
78
using ReClassNET.Util;

ReClass.NET/Nodes/BoolNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Drawing;
22
using ReClassNET.Controls;
3+
using ReClassNET.Extensions;
34
using ReClassNET.UI;
45

56
namespace ReClassNET.Nodes

ReClass.NET/Nodes/DoubleNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Drawing;
22
using ReClassNET.Controls;
3+
using ReClassNET.Extensions;
34
using ReClassNET.Memory;
45
using ReClassNET.UI;
56

ReClass.NET/Nodes/FloatNode.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Drawing;
22
using ReClassNET.Controls;
3+
using ReClassNET.Extensions;
34
using ReClassNET.Memory;
45
using ReClassNET.UI;
56

ReClass.NET/ReClass.NET.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@
174174
<Compile Include="Debugger\SoftwareBreakpoint.cs" />
175175
<Compile Include="Extensions\ByteExtension.cs" />
176176
<Compile Include="Extensions\IRemoteMemoryReaderExtension.cs" />
177+
<Compile Include="Extensions\IRemoteMemoryWriterExtension.cs" />
177178
<Compile Include="Extensions\ListExtension.cs" />
178179
<Compile Include="Extensions\PointExtension.cs" />
179180
<Compile Include="Extensions\StringBuilderExtensions.cs" />

0 commit comments

Comments
 (0)