Prototype
E_RTN EMemory::SpaceCat( ulonglong ullSpaceToCatSize,
void *pBlockToFill,
ulonglong ullBlockToFillSize );

Cette fonction concatène un espace de ullSpaceToCatSize octet(s) à la limite finale externe de l'espace de travail.

La taille de l'espace de travail augmente donc de la taille de l'espace à concaténer.

Les octets ajoutés sont nettoyés à l'aide du bloc d'octets pBlocktoFill.

 

Argument

ulonglong ullSpaceToCatSize

taille de l'espace à concaténer.

void *pBlockToFill

adresse du bloc d'octets à utiliser pour nettoyer l'espace concaténé.

ulonglong ullBlockToFillSize

taille du bloc d'octets à utiliser pour nettoyer l'espace concaténé.

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Concatène un espace de 3 octets nettoyé avec un bloc d'octets contenant les données 0x58 et 0x59 ("XY" en ASCII) dans un objet EMemory vièrge (eMem0) et dans un objet EMemory (eMem1) d'une taille de 3 octets contenant les données 0x41, 0x42 et 0x43 ("ABC" en ASCII).

Code :

EMemory eMem0; // objet EMemory vièrge

eMem0.TraceEx( _T("eMem0") );
eMem0.SpaceCat( 3, "XY", 2 );
eMem0.TraceEx( _T("eMem0") );

EMemory eMem1( "ABC", 3 ); //- objet EMemory alloué de 3 octets

eMem1.TraceEx( _T("eMem1") );
eMem1.SpaceCat( 4, "XY", 2 );
eMem1.TraceEx( _T("eMem1") );

Sortie :

### Object EMemory 'eMem0' Trace #
# Object address='0x0012F3F4', status='EMemory::ObjectStatus_Free' (code '1').
# Buffer address='0x00000000', workspace size='0' byte(s).
# No data to show from offset '0x00000000' to offset '0x00000000', length=0 byte(s).
### End #

### Object EMemory 'eMem0' Trace #
# Object address='0x0012F3F4', 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 58 59 58 .. .. .. .. .. .. .. .. .. .. .. .. .. [XYX]
### End #

### Object EMemory 'eMem1' Trace #
# Object address='0x0012F3DC', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000008', 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 #

### Object EMemory 'eMem1' Trace #
# Object address='0x0012F3DC', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000008', workspace size='7' byte(s).
# Array data from offset '0x00000000' to offset '0x00000006', length=7 byte(s).
# Offset start 0x00000000 41 42 43 58 59 58 59 .. .. .. .. .. .. .. .. .. [ABCXYXY]
### End #

Vue :

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

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02
  58
X
59
Y
58
X

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

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

 

Voir aussi
E_RTN EMemory::SpaceCat( ulonglong ullSpaceToCatSize );
E_RTN EMemory::SpaceCat( ulonglong ullSpaceToCatSize, uchar ucByteToFill );
E_RTN EMemory::ByteCat( uchar ucByteToCat );
E_RTN EMemory::BlockCat( void *pBlockToCat, ulonglong ullBlockToCatSize );

 

Minimum
Version 1.0.0