Prototype
void EValue::TraceExA( char *pszObjetEValueName = NULL );

void EValue::TraceExW( wchar_t *pszObjetEValueName = NULL);

void EValue::TraceEx( TCHAR *pszObjetEValueName = NULL );

Ces fonctions affichent les informations étendues de l'objet. En plus des informations affichées par la fonction Trace, elle ajoute le contenu de la variable membre m_tValue au format décimal signé, non signé, hexadécimal et binaire.

Le premier prototype est à utiliser si l'on désire forcer l'utilisation de la fonction dans sa version Ascii, le second pour sa version Unicode.

Le troisième prototype utilise soit le format ASCII soit le format Unicode. Si votre projet est configuré pour utiliser le format ASCII, la chaîne de caractères pszObjetEValueName sera au format ASCII (char*), par contre si votre projet est configuré pour utiliser le format Unicode, la chaîne de caractères sera au format Unicode (wchar_t*).

Pour pouvoir utiliser cette fonction vous devez avoir activé l'objet ETrace et l'objet EDivers de la librairie Eclat.

 

Argument

char *pszObjetEValueName = NULL
ou
wchar_t *pszObjetEValueName = NULL

nom de l'objet EValue sous la forme d'une chaîne de caractères Ascii ou Unicode.

Il sert à plus facilement situer les informations relatives d'un objet parmi tous les traçages affichés dans la fenêtre de sortie du débugueur.

Si cette information ne vous intéresse pas cet argument peut être NULL (la fonction ne retournera pas d'erreur à ce propos).

 

Retour

aucun.

 

Exemple

Description :

• Instancier un objet EValue (eValue0) de type uchar initialisé avec la valeur 100 (1100100),
• Instancier un objet EValue (eValue1) de type ushort initialisé avec la valeur 32200 (01111101 11001000),
• Instancier un objet EValue (eValue2) de type ulong initialisé avec la valeur 2000000000 (01110111 00110101 10010100 00000000),
• Instancier un objet EValue (eValue3) de type ulonglong initialisé avec la valeur 9000000000000000000 (01111100 11100110 01101100 01010000 11100010 10000100 00000000 00000000),
• Traçage étendu en mode ASCII ou Unicode (suivant la configuration du projet) de l'objet eValue0 sans communication de nom,
• Traçage étendu en mode ASCII de l'objet eValue1 avec communication d'un nom au format ASCII,
• Traçage étendu en mode Unicode de l'objet eValue2 avec communication d'un nom au format Unicode,
• Traçage étendu en mode ASCII ou Unicode (suivant la configuration du projet) de l'objet eValue3 avec communication d'un nom au format soit ASCII soit Unicode (suivant la configuration du projet).

Code :

EValue <uchar> eValue0 ( 100 );
EValue <ushort> eValue1( 32200 );
EValue <ulong> eValue2( 2000000000 );
EValue <ulonglong> eValue3( 9000000000000000000 );

eValue0.TraceEx();
eValue1.TraceExA( "eValue1" );
eValue2.TraceExW( L"eValue2" );
eValue3.TraceEx( _T("eValue3") );

Sortie :

### Object EValue Trace #
# Object address='0x0012F483', size of='1' byte(s) ('8' bits).
# Value:
# Decimal='100'(signed) '100'(unsigned), Hexadecimal='0x64'.
# Binary = 01100100
# Equal. = ========
# Bit pos= 76543210
### End #

### Object EValue 'eValue1' Trace #
# Object address='0x0012F474', size of='2' byte(s) ('16' bits).
# Value:
# Decimal='32200'(signed) '32200'(unsigned), Hexadecimal='0x7DC8'.
# Binary = 01111101 11001000
# Equal. = ======== ========
# Bit pos= FEDCBA98 76543210
### End #

### Object EValue 'eValue2' Trace #
# Object address='0x0012F468', size of='4' byte(s) ('32' bits).
# Value:
# Decimal='2000000000'(signed) '2000000000'(unsigned), Hexadecimal='0x77359400'.
# Binary = 01110111 00110101 10010100 00000000
# Equal. = ======== ======== ======== ========
# Pos maj= 11111111 11111111 00000000 00000000
# Pos min= FEDCBA98 76543210 FEDCBA98 76543210
### End #

### Object EValue 'eValue3' Trace #
# Object address='0x0012F458', size of='8' byte(s) ('64' bits).
# Value:
# Decimal='9000000000000000000'(signed) '9000000000000000000'(unsigned), Hexadecimal='0x7CE66C50E2840000'.
# Binary = 01111100 11100110 01101100 01010000 11100010 10000100 00000000 00000000
# Equal. = ======== ======== ======== ======== ======== ======== ======== ========
# Pos maj= 33333333 33333333 22222222 22222222 11111111 11111111 00000000 00000000
# Pos min= FEDCBA98 76543210 FEDCBA98 76543210 FEDCBA98 76543210 FEDCBA98 76543210
### End #

Vue :

Vue de eValue0 :

07 06 05 04 03 02 01 00

Champs de bits

0 1 1 0 0 1 0 0 Valeur originale

Vue de eValue1 :

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

Champs de bits

0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 Valeur originale

Vue de eValue2 :

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

Champs de bits

1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 Valeur originale
1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10

Champs de bits

0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 Valeur originale

Vue de eValue2 :

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

Champs de bits

1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 Valeur originale
1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10

Champs de bits

0 1 1 1 0 1 1 1 0 0 1 1 0 1 0 1 Valeur originale

Vue de eValue3 :

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

Champs de bits

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Valeur originale
1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10

Champs de bits

1 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 Valeur originale
2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20

Champs de bits

0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 Valeur originale
3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 30

Champs de bits

0 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 Valeur originale

 

Voir aussi
void EValue::TraceA( char *pszObjetEValueName=NULL );
void EValue::TraceW( wchar_t *pszObjetEValueName=NULL );
void EValue::Trace( TCHAR *pszObjetEValueName=NULL );

 

Minimum
Version 1.0.0
Objet inter-connectable ETrace v 1.0.0
Objet inter-connectable EDivers v 1.0.0