Desidero creare un elenco di puntatori a posizioni che contengono un determinato valore nella memoria di processo di un altro processo. Il valore può essere un breve, int, long, string, bool o qualcos'altro.Confronto byte [] a T
La mia idea è di usare Generics per questo. Ho un problema nel renderlo, come posso dire al compilatore di che tipo ha bisogno per convertire l'array di byte?
Questo è quello che ho fatto:
public List<IntPtr> ScanProccessFor<T>(T ItemToScanFor)
{
List<IntPtr> Output = new List<IntPtr>();
IntPtr StartOffset = SelectedProcess.MainModule.BaseAddress;
int ScanSize = SelectedProcess.MainModule.ModuleMemorySize;
for (int i = 0; i < ScanSize; i++)
if (ReadMemory(SelectedProcess, StartOffset + i, (UInt16)Marshal.SizeOf(ItemToScanFor)) == ItemToScanFor)
Output.Insert(Output.Count,StartOffset + i);
return Output;
}
Come posso dire al compilatore che ha bisogno di convertire il byte [] per digitare T?
Il tuo compilatore è un "lui"? :) –
@Ed dispari; quando chiedo il mio, dice "Il mio nome è legione, perché siamo molti" –
Almeno 3 ragazzi (me compreso) hanno modificato il post e non lo abbiamo modificato =) –