Prototype
E_RTN EMemory::BlockCopyExact( void *pBlockToCopy,
ulonglong ullBlockToCopySize );

Cette fonction ajuste la taille de l'espace de travail de l'objet à ullBlockToCopySize octet(s) et y copie le bloc d'octets pBlockToCopy.

Si nécessaire l'espace de travail de l'objet est redimensionné à la hausse ou à la baisse.

 

Argument

void *pBlockToCopy

adresse du bloc d'octets à copier.

ulonglong ullBlockToCopySize

taille du bloc d'octets à copier.

 

Retour

E_RTN

voir la section erreur.

 

Exemple

Description :

Effectue la copie exacte d'un bloc d'octets 0x41, 0x42 et 0x43 ("ABC" en ASCII) dans un objet EMemory d'une taille de 5 octets ayant les informations 0x56, 0x57, 0x58, 0x59 et 0x5A ("VWXYZ" en ASCII).

Code :

EMemory eMem( "VWXYZ", 5 ); // objet EMemory alloué de 5 octets

eMem.TraceEx( _T("eMem") );
eMem.BlockCopyExact( "ABC", 3 );
eMem.TraceEx( _T("eMem") );

Sortie :

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

### Object EMemory 'eMem' Trace #
# Object address='0x0012F3B8', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='3' byte(s).
# Array data from offset '0x00000000' to offset '0x00000002', length=3 byte(s).
# Offset start 0x00000000 41 42 43 .. .. .. .. .. .. .. .. .. .. .. .. .. ABC
### End #

Vue :

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

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02
  41
A
42
B
43
C

 

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

 

Minimum
Version 1.0.0