为什么我的64位ISAPI dll中的指针搞砸了?

时间:2009-05-09 19:04:47

标签: pointers 64-bit isapi

我正在努力将32位ISAPI dll迁移到64位。我正在使用Visual Studio 2008.我遇到HttpExtensionProc函数中的EXTENSION_CONTROL_BLOCK指针问题。 EXTENSION_CONTROL_BLOCK结构中的char指针在进入函数时无效;它们在观察窗口内被标记。如果我通过交换指针的前4个字节和最后4个字节手动修改char指针,则显示正确的值。有什么想法会发生这种情况吗?

这是修改指针之前的监视窗口,注意lpszQueryString: link text alt text

这是修改指针后的监视窗口,注意lpszQueryString: link text alt text

1 个答案:

答案 0 :(得分:1)

问题是我正在使用1字节对齐进行构建。我需要这样做:

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

Thanks to nobugz for the answer.