Prototype
E_RTN EMemory::BlockCopyTo( void *pBlockDest,
ulonglong ullOffset = 0,
ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

Cette fonction copie dans le bloc d'octets externe pBlockDest les données contenues dans un intervalle de travail de l'objet EMemory actif.

Il doit y avoir assez de place dans le bloc d'octets externe pBlockDest où doit s'effectuer la copie.

 

Argument

void *pBlockDest

adresse où l'on doit copier les données.

ulonglong ullOffset = 0

offset de départ de l'intervalle de travail où doit commencer la copie.

ulonglong ullOffsetSize = EMemory::SizeUpToEnd

étendue de l'intervalle de travail à copier.

 

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Effectue la copie dans un bloc d'octets externe des données contenues dans un objet EMemory d'une taille de 6 octets ayant les informations 0x56, 0x57, 0x58, 0x59, 0x5A et 0x00 ("VWXYZ\x00" en ASCII).

Code :

EMemory eMem( "VWXYZ", 6 ); //- objet EMemory alloué de 5 octets rempli des données "VWVYZ"
char cszBuffer[6]; // buffer alloué de 6 octets

eMem.TraceEx( _T("eMem") );
eMem.BlockCopyTo( cszBuffer );
ETrace::DoExA( "Contenu du buffer \"cszBuffer\" = %s.\n", cszBuffer );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F454', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000001', workspace size='6' byte(s).
# Array data from offset '0x00000000' to offset '0x00000005', length=6 byte(s).
# Offset start 0x00000000 56 57 58 59 5A 00 .. .. .. .. .. .. .. .. .. .. [VWXYZ.]
### End #

Contenu du buffer "cszBuffer" = VWXYZ.

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04 05 00 01 02 03 04 05
  56
V
57
W
58
X
59
Y
5A
Z
00 ? ? ? ? ? ?

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04 05 00 01 02 03 04 05
  56
V
57
W
58
X
59
Y
5A
Z
00 56
V
57
W
58
X
59
Y
5A
Z
00

 

Voir aussi
E_RTN EMemory::ByteCopy( uchar ucByteToCopy, ulonglong ullOffset = 0 );
E_RTN EMemory::ByteCopyExact( uchar ucByteToCopy );
E_RTN EMemory::BlockCopy( void *pBlockToCopy, ulonglong ullBlockToCopySize, ulonglong ullOffset = 0 );
E_RTN EMemory::BlockCopyExact( void *pBlockToCopy, ulonglong ullBlockToCopySize );

 

Minimum
Version 1.0.0