(void*)&((char*)FilePtr + FileSize - 5)
non mais non là
qu'est ce qu'il vient foutre au milieu ce &?
FilePtr est déja un pointeur vers ce que tu veux, il pointe juste quelques octets avant, et il a éventuellement pas le bon type. Donc a la limite tu pourrais faire
(void*)((char*)FilePtr + FileSize - 5)
mais vu que void* et char* se comportent de la même manière, tu peux carrément virer tous les casts.
a abuser un compilo, autant le faire proprement