2009-05-09 9 views
0

32 비트 ISAPI dll을 64 비트로 마이그레이션하는 중입니다. Visual Studio 2008을 사용하고 있습니다. HttpExtensionProc 함수에서 EXTENSION_CONTROL_BLOCK 포인터에 문제가 있습니다. EXTENSION_CONTROL_BLOCK 구조체 내의 char 포인터는 함수 입력시 유효하지 않습니다. 시계 창 안에 레이블이 붙어 있습니다. 포인터의 처음 4 바이트와 마지막 4 바이트를 바꿔서 char 포인터를 수동으로 수정하면 올바른 값이 표시됩니다. 왜 이런 일이 일어날까요? link text alt text http://i41.tinypic.com/2rxwbr4.jpg내 64 비트 ISAPI dll의 포인터가 엉망인 이유는 무엇입니까?

이 포인터를 수정 한 후 시계 창이며, lpszQueryString에주의 : link text alt text http://i39.tinypic.com/2hnar7n.jpg

답변

1

는 lpszQueryString에 관심을 지불, 포인터를 수정하기 전에 시계 창입니다 문제는 1 바이트 정렬로 구축하고 있다는 것이 었습니다.

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

Thanks to nobugz for the answer.

: 나는이 작업을 수행하는 데 필요한