Voici un code emprunté au moteur "Endogine". Il est censé échanger l'ordre des octets d'un tableau d'octets:Rendre ce code C# SwapBytes compatible x64
unsafe protected void SwapBytes(byte* ptr, int nLength)
{
for(long i = 0; i < nLength/2; ++i) {
byte t = *(ptr + i);
*(ptr + i) = *(ptr + nLength - i - 1);
*(ptr + nLength - i - 1) = t;
}
}
Il semble échouer lorsque je cible l'architecture x64, mais je ne peux pas comprendre pourquoi, car aucun pointeur est jeté à int32. Toute aide?
Avez-vous essayé d'utiliser un type int pour nLength et i? Aussi, quelle est l'erreur que vous obtenez? – Sijin
si vous pouviez exécuter une séquence spécifique d'octets (par exemple, 0x01, 0x02, 0x03, 0x04) à la fois x86 et x64 et afficher les résultats ne correspondant pas, cela aiderait. –