Ik ben in C# bezig met een applicatie, maar ik loop even tegen een probleem op waar ik geen antwoord op kan vinden. Misschien kunnen jullie me helpen.
Ik heb de volgende declaratie om een API op te roepen:
Ik wil een single wegschrijven naar een lokatie in het geheugen. Een single is 32 bits (4 bytes) lang dus ik bedacht het volgende. Ik maak een byte[] aan van 4 lang. Als ik die array handmatig vul met waarden en ik geef die array op als parameter in de writeprocessmemory lukt het prima.
Echter nu moet ik een single (of float) omzetten naar 4 losse bytes, zodat ik ze via de buffer kan wegschrijven. Iemand die weet hoe dit moet ?
De andere kant op (van Byte[] naar single) kan wel dmv "BitConverter.ToSingle(buf,0)".
Ik heb al geprobeerd de API declaratie parameter naar Single te veranderen en dan de single direct als parameter mee te geven, maar dan geeft de api een error terug.
Ik heb de volgende declaratie om een API op te roepen:
code:
1
| [DllImport("kernel32.dll")] public static extern Int32 WriteProcessMemory(int hProcess, int lpBaseAddress, [In, Out] byte[] buffer, int size, out int lpNumberOfBytesWritten); |
Ik wil een single wegschrijven naar een lokatie in het geheugen. Een single is 32 bits (4 bytes) lang dus ik bedacht het volgende. Ik maak een byte[] aan van 4 lang. Als ik die array handmatig vul met waarden en ik geef die array op als parameter in de writeprocessmemory lukt het prima.
Echter nu moet ik een single (of float) omzetten naar 4 losse bytes, zodat ik ze via de buffer kan wegschrijven. Iemand die weet hoe dit moet ?
De andere kant op (van Byte[] naar single) kan wel dmv "BitConverter.ToSingle(buf,0)".
Ik heb al geprobeerd de API declaratie parameter naar Single te veranderen en dan de single direct als parameter mee te geven, maar dan geeft de api een error terug.
Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light