Pointers 为什么我的64位ISAPI dll中的指针会出错?

Pointers 为什么我的64位ISAPI dll中的指针会出错?,pointers,64-bit,isapi,Pointers,64 Bit,Isapi,我正在将32位ISAPI dll迁移到64位。我正在使用VisualStudio2008。我对HttpExtensionProc函数中的扩展控制块指针有问题。扩展控制块结构中的字符指针在进入函数时无效;它们在手表窗口内贴上了标签。如果我通过交换指针的前4个字节和后4个字节来手动修改char指针,则会显示正确的值。你知道为什么会这样吗 这是修改指针之前的观察窗口,请注意lpszQueryString: 这是修改指针后的观察窗口,请注意lpszQueryString: 问题是我在构建1字节对齐。我

我正在将32位ISAPI dll迁移到64位。我正在使用VisualStudio2008。我对HttpExtensionProc函数中的扩展控制块指针有问题。扩展控制块结构中的字符指针在进入函数时无效;它们在手表窗口内贴上了标签。如果我通过交换指针的前4个字节和后4个字节来手动修改char指针,则会显示正确的值。你知道为什么会这样吗

这是修改指针之前的观察窗口,请注意lpszQueryString:

这是修改指针后的观察窗口,请注意lpszQueryString:

问题是我在构建1字节对齐。我需要这样做:

#pragma pack(push, 8)
#include <httpext.h>
#pragma pack(pop)
#pragma包(推送,8)
#包括
#布拉格语包(流行语)