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

问题描述 投票:0回答:1

我正在努力将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

pointers 64bit isapi
1个回答
1
投票

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

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

Thanks to nobugz for the answer.

© www.soinside.com 2019 - 2024. All rights reserved.