Accueil > Forum > > > > probleme de taille de structure
probleme de taille de structure
mardi 22 juillet 2008 à 10:57:43 |
probleme de taille de structure

hisoka56
|
Bonjour, je suis en train de programmer un lecteur de mémoire et j'ai un problème avec la taille d'une structure. Voici ma structure : struct QuestLog { DWORD ql1; DWORD ql2[2]; };
struct Cplayer { /*0x0000*/ WOWGUID GUID; /*0x0008*/ DWORD Type; /*0x000c*/ DWORD Entry; //tons of other ....
/*0x03b0*/ QuestLog questLog[25]; /*0x04dc*/ VisibleItem visibleItem[19]; //others... };
Je rempli ma structure à l'aide de mon MemoryReader avec : CPlayer player; mem->read( playerptr.UnitData, &player, sizeof(CJoueur) ) ; et bool CMemoryReader::read(const DWORD &addr, void * value, const DWORD &size_, SIZE_T * total) { if( this->gHandle == INVALID_HANDLE_VALUE ) return false; BOOL ok = false; ok = ReadProcessMemory(this->gHandle, (LPCVOID)addr, value, size_, total); _error(); return ok; }et mon code de test : DWORD pos_GUID = (DWORD) &(j->GUID); DWORD pos_rel_questlog = (DWORD) &(j->questLog) - pos_GUID; DWORD normal_position_visibleitem = pos_rel_questlog + sizeof(j->questLog);
DWORD pos_rel_visibleitem = (DWORD) &(j->visibleItem) - pos_GUID; ILogger::Log("relative adress QuestLog : %p", pos_rel_questlog); ILogger::Log("normal position (should be) of visibleItem : %p", normal_position_visibleitem); ILogger::Log("the value i get : %p", pos_rel_visibleitem);Si je ne faisais aps d'erreur, je devrais avoir les même valeurs pour "normal_position_visibleitem" et "pos_rel_visibleitem" mais j'ai une différence de 4 bytes (1 DWORD?)  En calculant manuellement la taille de questLog je trouve (DWORD=4 *3 * 25) = 300 = 12C or 12C+3B0 = 4dc mais dans mon programme de test, ce n'est pas ce que je trouve. Je ne comprend pas pourquoi j'ai une différence (ce qui décale les adresses de toute ma structure et toutes les autres membres sont donc faux.
|
|
mardi 22 juillet 2008 à 11:48:45 |
Re : probleme de taille de structure

Neo_Fr
|
Réponse acceptée !
Salut regarde bien si ta structure est correctement alignée, si ce n'est pas le cas le compilateur peut rajouter des octets pour l'aligner a ta place, par defaut les structures sont alignés sur 4 octets, il est cependant possible de changer cette valeur grace a la directive pack: http://msdn.microsoft.com/en-us/library/2e70t5y1(VS.80).aspx
Un peu de doc sur l'alignement des structures:
http://msdn.microsoft.com/en-us/library/71kf49f1(VS.80).aspx
Cette doc s'applique pour les systemes 64bits donc les structures sont alignées sur 8 octets, mais le principe reste le meme..
Neo_Fr
|
|
mardi 22 juillet 2008 à 12:05:03 |
Re : probleme de taille de structure

hisoka56
|
je te remercie, je ne connaissait rien en alignement, d'ailleurs, ça me semble toujours un peu flou mais j'ai réussi à corriger mon erreur, en ajoutant juste un pack(4).
Mais je vois pas trop pourquoi le compilateur fais ce type d'arrangement c'est pour gagner de la vitesse?
|
|
Cette discussion est classée dans : structure, dword, pos, questlog, visibleitem
Répondre à ce message
Sujets en rapport avec ce message
Entete d'un .avi [ par kididouille ]
Dans vfw.h on trouve les structures des entetes des .avi Il y a la structure principal MainAVIHeader (56 bytes) Mais il y a également une structure AV
les valeur de structure COMMTIMEOUTS ?????????? [ par hattabfethi ]
Je veux faire une communication PC automate S7-200 via le port rs232.Si qq peut me donner les valeurs de la structure COMMTIMEOUTS. typedef struct _C
communication entre PC et automate siemens S7-200 à travers le port série??????????? [ par hattabfethi ]
SVP aider moi, mon problème est le suivant :j'ai un documents qui explique le protocole ppi (explique les formats de trames acceptées par le cpu de l'
Copier le contenu d'une structure dans un fichier en C++ [ par brute ]
Bonjour, J'ai un problème pour copier le contenu d'une structure dans un fichier en c++. J'ai bien regardé les messages postés dans le forum sur ce s
Structure et FileMapping [ par Loukhass ]
Bonjour. Je dois utiliser le filemapping pour transmettre un tableau de structure d'un programme à un autre. Mon premier probleme était le fileMappin
MS3D [ par mondrone ]
Bonjour à tous. Je cherche des information sur la structure des fichiers ms3d. J'ai déjà pu voir en faisant une recherche sur le forum, que certains s
Question sur les tableaux de structures [ par Kleidp ]
Bonjour,j'ai quelques problèmes avec les tableaux de structure. Tout d'abord voici une de mes structures:typedef struct{ float r,g,b;}text;text tex
fonction recursive [ par infodaoudi ]
Bonjour, j'ai la fonction recusive ci-dessu, suposons qu'on a un cas qui passe par les etapes 2/3/5/2/3/4, normalement la valeur de retour de la fonct
Appel de structure avec argv [ par Neoflo ]
Voici mon problème, j'ai défini un type de structure nombre. Puis j'ai initialisé 2 élements avec ce type (francais et anglais). Maintenant, suivant
tableau de structure [ par lunatic34 ]
Salut a tous!!!!voila j'ai mis un tableau de structure en memoire et je voudrais l' enregistrer dans un fichier donc s'il y a des personnes qui peuven
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|