Quiero hacer una lista de punteros a ubicaciones que contienen un cierto valor en la memoria de proceso de otro proceso. El valor puede ser un corto, int, largo, cadena, bool u otra cosa.Comparar byte [] a T
Mi idea es utilizar genéricos para esto. Tengo un problema al crearlo, ¿cómo puedo decirle al compilador qué tipo necesita para convertir la matriz de bytes?
Esto es lo que hice:
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;
}
¿Cómo puedo decirle al compilador que necesita para convertir el byte [] para escribir T?
¿Tu compilador es un "él"? :) –
@Ed impar; cuando le pregunto a los míos, dice "Mi nombre es legión, porque somos muchos" –
Al menos 3 tipos (yo incluido) corrigieron la publicación y no la cambiamos =) –