Prototype
uchar& EMemory::operator [] ( ulonglong ullOffset );

Cet opérateur permet de manipuler directement une donnée, de type uchar (soit un octet), de l'espace de travail que se soit en lecture et/ou en écriture.

 

Argument

ulonglong ullOffset

offset où doit s'effecuter la lecture et/ou d'écriture.

 

Retour

uchar&

variable de type uchar.

 

Exemple

Description :

Inversion de l'octet à l'offset 0 et de l'octet à l'offset 7 en utilisant l'accès directe aux données par opérateur [] d'un objet EMemory alloué de 8 octets ayant les données 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 et 0x48 ("ABCDEFGH" en ASCII).

Code :

EMemory eMem( "ABCDEFGH", 8 );
uchar ucBuffer;

eMem.TraceEx( _T("eMem") );

ucBuffer = eMem[0];
ETrace::DoEx( _T("Octet lu à l'offset 0 = %C.\n\n"), ucBuffer );

eMem[0] = eMem[7];
eMem.TraceEx( _T("eMem") );

eMem[7] = ucBuffer;
eMem.TraceEx( _T("eMem") );

Sortie :

### Object EMemory 'eMem' Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='8' byte(s).
# Array data from offset '0x00000000' to offset '0x00000007', length=8 byte(s).
# Offset start 0x00000000 41 42 43 44 45 46 47 48 .. .. .. .. .. .. .. .. [ABCDEFGH]
### End #

Octet lu à l'offset 0 = A.

### Object EMemory 'eMem' Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='8' byte(s).
# Array data from offset '0x00000000' to offset '0x00000007', length=8 byte(s).
# Offset start 0x00000000 48 42 43 44 45 46 47 48 .. .. .. .. .. .. .. .. [HBCDEFGH]
### End #

### Object EMemory 'eMem' Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000004', workspace size='8' byte(s).
# Array data from offset '0x00000000' to offset '0x00000007', length=8 byte(s).
# Offset start 0x00000000 48 42 43 44 45 46 47 41 .. .. .. .. .. .. .. .. [HBCDEFGA]
### 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
  41
A
42
B
43
C
44
D
45
E
46
F
47
G
48
H

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04 05 06 07
  48
H
42
B
43
C
44
D
45
E
46
F
47
G
48
H

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04 05 06 07
  48
H
42
B
43
C
44
D
45
E
46
F
47
G
41
A

 

Voir aussi
EMemory& operator = ( EMemory &eMemory );
EMemory& operator += ( EMemory &eMemory );
void* operator () ( ulonglong ullOffset );

 

Minimum
Version 1.0.0