Почему указатели в моей 64-битной ISAPI dll испорчены? - PullRequest
0 голосов
/ 09 мая 2009

Я работаю над переносом 32-битной библиотеки ISAPI на 64-битную версию. Я использую Visual Studio 2008. У меня проблемы с указателем EXTENSION_CONTROL_BLOCK в функции HttpExtensionProc. Указатели на символы в структуре EXTENSION_CONTROL_BLOCK недопустимы при входе в функцию; они помечены внутри окна часов. Если я вручную изменю указатели на символы, меняя местами первые 4 байта и последние 4 байта указателя, отображаются правильные значения. Есть идеи, почему это будет происходить?

Это окно просмотра перед изменением указателя, обратите внимание на lpszQueryString: текст ссылки alt text

Это окно просмотра после изменения указателя, обратите внимание на lpszQueryString: текст ссылки alt text

1 Ответ

1 голос
/ 11 мая 2009

Проблема была в том, что я строил с 1-байтовым выравниванием. Мне нужно было сделать это:

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

Спасибо nobugz за ответ.

...