2009-05-09 6 views
0

Je travaille sur la migration d'une DLL ISAPI 32 bits vers 64 bits. J'utilise Visual Studio 2008. J'ai des problèmes avec le pointeur EXTENSION_CONTROL_BLOCK dans la fonction HttpExtensionProc. Les pointeurs char dans la structure EXTENSION_CONTROL_BLOCK ne sont pas valides à l'entrée dans la fonction; ils sont étiquetés avec dans la fenêtre de la montre. Si je modifie manuellement les pointeurs char en permutant les 4 premiers octets et les 4 derniers octets du pointeur, les valeurs correctes s'affichent. Des idées pourquoi cela se passerait-il?Pourquoi les pointeurs dans ma DLL ISAPI 64 bits foiré?

Ceci est la fenêtre de la montre avant de modifier le pointeur, faites attention à lpszQueryString: link text alt text http://i41.tinypic.com/2rxwbr4.jpg

Ceci est la fenêtre de la montre après avoir modifié le pointeur, faites attention à lpszQueryString: link text alt text http://i39.tinypic.com/2hnar7n.jpg

Répondre

1

Le problème était que je construisais avec un alignement de 1 octet. Je devais faire ceci:

#pragma pack(push, 8) 
#include <httpext.h> 
#pragma pack(pop) 

Thanks to nobugz for the answer.

Questions connexes