>Je crois avoir lu que la taille des int, double, short.... ne changeait pas d'une compilation à l'autre
Vous avez mal lu, elle change même avec la même cible (x86,x64), en fonction des réglages du compilateur.
En plus, même si les types simples avaient la même taille, la politique d'alignement des champs des structures est aussi fonctions des réglages du compilateur. Réglages bien différents entre x86 et x64.
Il ne faut donc pas faire d'assertion sur le layout des structures.
Ce n'est pas impossible de rendre ce layout identique entre 2 projets, un x86 et l'autre x64, mais cela tombera pas en marche tout seul, au minimum, il faut utiliser des types spécifiant de manière non ambiguë leur taille, leur endianess et la politique
de padding des structures.
Paul Bacelar, Ex - MVP VC++