Prototype |
E_RTN | EMemory::SpaceMove( | ulonglong | ullSpaceToMoveSize, |
ulonglong | ullOffsetDest, | ||
ulonglong | ullOffsetSource ); |
Cette fonction déplace un espace d'une étendue de ullSpaceToMoveSize octet(s) de l'offset source ullOffsetSource à l'offset destination ullOffsetDest.
L'offset destination peut être à l'intérieur de l'espace de travail ou à la limite finale externe. Par contre l'offset source ainsi que toute son étendue à déplacer doivent être à l'intérieur de l'espace de travail.
Attention, l'offset destination ullOffsetDestination ne peut être situé dans l'intervalle de l'espace à déplacer (c'est à dire compris entre l'offset ullOffsetSource+1 sur une étendue de ullSpaceToModeSize-1) sinon il y a chevauchement.
Par exemple pour les données "ABCDEFG", si l'on effectue un déplacement de l'offset 3 d'une étendue de 3 octets (soit "DEF"), alors les offsets 4 (situé à la lettre "E") et 5 (situé à la lettre "F") ne sont pas valides car ils font parties de l'espace à déplacer et la fonction retournera l'erreur erMemAreaRide.
Par contre spécifier comme offset destination l'offset 3 (situé à la lettre "D") ou 6 (situé à la lettre "G") ne produira aucun changement des données. Ces offsets déplacent l'espace exactement au même endroit (voir l'exemple ci-dessous avec les deux derniers déplacements).
Tous les autres offsets destination produiront un déplacement.
Argument |
ulonglong ullSpaceToMoveSize taille de l'espace à déplacer. |
ulonglong ullOffsetDest offset destination où l'espace doit être déplacé. |
ulonglong ullOffsetSource offset source qui doit être déplacé. |
Retour |
E_RTN voir la section retour de la librairie Eclat. |
Exemple |
Description : Déplacement d'un espace de 2 octets de l'offset source 2 à l'offset destination 6, d'un espace de 2 octets de l'offset source 0 à l'offset destination 4, d'un espace de 2 octets de l'offset source 0 à l'offset destination 6, d'un espace de 2 octets de l'offset source 0 à l'offset destination 2 (aucun effet), d'un espace de 2 octets de l'offset source 2 à l'offset destination 2 (aucun effet) d'un objet EMemory alloué de 6 octets contenant les données 0x41, 0x42, 0x43, 0x44, 0x45 et 0x46 ("ABCDEF" en ASCII). |
Code :
|
Sortie :
|
Vue :
|
Minimum |
Version | 1.0.0 |