2010-09-07 8 views
0

J'ai construit un test pour un pilote dans Windows CE 6.0 et certains tests échouent car la mémoire transmise n'est pas correctement alignée.Alignement des données de pile dans Windows CE 6.0

Comment contrôler l'alignement des variables automatiques sur la pile (pas à l'intérieur des structures)? Gardez à l'esprit que je ne peux pas modifier ce test de quelque façon que ce soit, excepté comment je le construis.

+0

Je n'ai jamais rencontré un tel problème. Pouvez-vous poster le message d'erreur? – Shaihi

Répondre

0

Il n'y a pas de message d'erreur, le problème est lorsqu'un octet non signé est déclaré sur la pile, l'adresse n'est pas alignée sur 4 octets, et j'en ai besoin.

L'exe qui est construit est un test de conformité et je ne peux pas changer le code. Lorsque je compile pour Windows, les vars de pile sont alignés sur 4 octets, mais ne sont pas alignés lorsque je les compile.

+0

Modifiez votre question originale avec des informations comme celle-ci ou utilisez un document dans la réponse pour laquelle vous clarifiez. Ne donnez une réponse que si vous répondez à votre question. – ctacke

+0

J'ai perdu la poignée au compte que j'ai demandé à cette question de – wincehelp

0

Les variables automatiques sont automatiquement alignées en fonction de leur alignement naturel, à moins que vous ne disiez explicitement au compilateur de ne pas le faire. Donc, si vous avez besoin d'une adresse avec un alignement de 4 octets, déclarez une variable de 4 octets, comme un DWORD.

Questions connexes