2009-05-09 9 views
0

私は32ビットISAPI dllを64ビットに移行する作業を進めています。 Visual Studio 2008を使用しています.HttpExtensionProc関数のEXTENSION_CONTROL_BLOCKポインターに問題があります。 EXTENSION_CONTROL_BLOCK構造体内のcharポインタは、関数へのエントリ時に無効です。ウォッチウィンドウ内にラベルが付けられています。ポインタの最初の4バイトと最後の4バイトを交換して、手動でcharポインタを変更すると、正しい値が表示されます。なぜこれが起こっているのだろうか?私の64ビットISAPI dllのポインタが乱れるのはなぜですか?

これはlpszQueryStringに注意を払う、ポインタを変更する前に、ウォッチウィンドウです: link text alt text http://i41.tinypic.com/2rxwbr4.jpg

これはlpszQueryStringに注意を払う、ポインタを変更した後、ウォッチウィンドウです: link text alt text http://i39.tinypic.com/2hnar7n.jpg

答えて

1

問題は、私が1バイト整列で構築していたことでした。

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

Thanks to nobugz for the answer.

:私はこれを行うために必要な
関連する問題