-
-
[讨论]难道是微软的BUG
-
发表于:
2011-12-9 10:27
4326
-
大家都写过DLL调用过自己的函数吧 我最近也写了个发现个问题
先说问题 函数大体结构在下面
问题 调用了函数 GetHookPortInfo(&buf,dwLen);
居然打印出来 &buf 自动偏移了 8个字节 希望高人指点咋回事
这是一次打印的内容 注释
aa buf 地址=00122ab0 EXE中 调用前 &buf
111buf 地址=00122ab0 DLL中 函数前 pBuf=&buf
222buf 地址=00122ab0 DLL中 函数末尾 pBuf==&buf
bb buf 地址=00122ab8 DLL函数调用结束 EXE中 pBuf!=&buf



这里
这个是DLL函数
bool __stdcall GetHookPortInfo(PVOID pBuf,DWORD nLen )
{
printf("111buf 地址=%08x\n",(DWORD)pBuf);
XXXXXX函数内容
printf("222buf 地址=%08x\n",(DWORD)pBuf);
CloseHandle(DeviceHandle);
return true;
}
这个是 EXE调用DLL的地方
printf("aa buf 地址=%08x\n",&buf);
if( GetHookPortInfo( &buf,dwLen ) )
{
XXX内容
}
printf("bb buf 地址=%08x\n",&buf);
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课