Prototype |
E_RTN | EMemory::SpaceSwap( | ulonglong | ullOffsetDest, |
ulonglong | ullOffsetDestSize, | ||
ulonglong | ullOffsetSource, | ||
ulonglong | ullOffsetSourceSize ); |
Cette fonction intervertit le bloc d'octets d'une taille de ullOffsetDestSize situé à l'offset ullOffsetDest avec le bloc d'octets d'une taille de ullOffsetSourceSize situé à l'offset ullOffsetSource.
Les deux blocs d'octets peuvent avoir une taille différente.
Attention, les blocs d'octets à intervertir ne peuvent se chevaucher. Par exemple pour les données "ABCDEFG", si l'on effectue une inversion de l'offset 1 et de l'offset 3 (tout deux d'une taille de 3 octets), l'erreur erMemAreaRide sera retournée car les deux blocs partagent l'offset 3. En effet le premier bloc concerne les données "BCD" et le deuxième bloc concerne les données "DEF", les deux blocs ont en commun la donnée "D".
Argument |
ulonglong ullOffsetDest offset du bloc d'octets destination à intervertir. |
ulonglong ullOffsetDestSize taille du bloc d'octets destination à intervertir. |
ulonglong ullOffsetSource offset du bloc d'octets source à intervertir. |
ulonglong ullOffsetSourceSize taille du bloc d'octets source à intervertir. |
Retour |
E_RTN voir la section retour de la librairie Eclat. |
Exemple |
Description : Interversion du bloc d'octets situé à l'offset 3 sur une étendue de 4 octets et du bloc d'octets à l'offset 9 sur une étendue de 3 octets d'un objet EMemory alloué de 6 octets d'espace de travail contenant les données 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B et 0x4C ("ABCDEFGHIJKL" en ASCII). |
Code :
|
Sortie :
|
Vue :
|
Voir aussi |
Minimum |
Version | 1.0.0 |