Prototype
E_RTN EMemory::SizeSet( ulonglong ullNewSize,
uchar ucByteToFill );

Cette fonction redimensionne l'espace de travail à une taille de ullNewSize.

Les octets ajoutés (en cas de redimensionnement à la hausse) ou supprimés (en cas de redimensionnement à la baisse) sont nettoyés à l'aide de l'octet ucByteToFill.

 

Argument

ulonglong ullNewSize

nouvelle taille de l'espace de travail.

uchar ucByteToFill

octet à utiliser pour nettoyer les octets ajoutés ou supprimés.

 

Retour

E_RTN

voir la section retour de la librairie Eclat.

 

Exemple

Description :

Redimensionnement à la hausse 3 octets avec nettoyage à l'aide la valeur 0x58 ("X" en ASCII) puis à la baisse de 6 octets avec nettoyage à l'aide la valeur 0x59 ("Y" en ASCII) puis, de nouveau, à la baisse de 1 octet avec nettoyage à l'aide la valeur 0x5A ("Z" en ASCII) d'un objet EMemory alloué de 4 octets contenant les données 0x41, 0x42, 0x43 et 0x44 ("ABCD" en ASCII).

Code :

EMemory eMem( "ABCD", 4 ); // objet alloué de 4 octets

eMem.TraceEx( _T("eMem") );
eMem.SizeSet( 7, 'X' ); // ou eMem.SizeSet( eMem.SizeGet() + 3, 'X' );
eMem.TraceEx( _T("eMem") );
eMem.SizeSet( 1, 'Y' ); // ou eMem.SizeSet( eMem.SizeGet() - 6, 'Y' );
eMem.TraceEx( _T("eMem") );
eMem.SizeSet( 0, 'Z' ); // ou eMem.SizeSet( eMem.SizeGet() - 1, 'Z' );
eMem.TraceEx( _T("eMem") );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F3EC', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='4' byte(s).
# Array data from offset '0x00000000' to offset '0x00000003', length=4 byte(s).
# Offset start 0x00000000 41 42 43 44 .. .. .. .. .. .. .. .. .. .. .. .. [ABCD]
### End #

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

### Object EMemory 'eMem' Trace #
# Object address='0x0012F3EC', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='1' byte(s).
# Array data from offset '0x00000000' to offset '0x00000000', length=1 byte(s).
# Offset start 0x00000000 41 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. [A]
### End #

### Object EMemory 'eMem' Trace #
# Object address='0x0012F3EC', status='EMemory::ObjectStatus_Empty' (code '2').
# Buffer address='0x00000004', workspace size='0' byte(s).
# No data to show from offset '0x00000000' to offset '0x00000000', length=0 byte(s).
### End #

Vue :

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

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

Nettoyage avec la valeur 0x59 avant libération :

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

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

Nettoyage avec la valeur 0x5A avant libération :

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

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

 

Voir aussi
E_RTN EMemory::Empty( void );
void EMemory::Free( void );
ulonglong EMemory::SizeGet( void );
E_RTN EMemory::SizeGet( ulonglong *pullSize, ulonglong ullOffset );
E_RTN EMemory::SizeSet( ulonglong ullNewSize );
E_RTN EMemory::SizeSet( ulonglong ullNewSize, void *pBlockToFill, ulonglong ullBlockToFillSize );

 

Minimum
Version 1.0.0