回复 4楼 crystall
BOOL pcie::ReadBAR0(DWORD offset,UINT32*outdata,UINT numbyte=0)
{
DWORD dw;
if(dw=WDC_ReadAddr32(hDev,0,offset,outdata),dw!=0)
{
strcpy(infor"读取失败!\n");
strcat(infor,Stat2Str(dw));
return FALSE;
}
return TRUE;
}
调用这个子函数里面涉及到WDC_ReadAddr32这个函数,这个函数是动态链接库"windrvr.h"里封装的函数
声明如下:
DWORD DLLCALLCONV WDC_ReadAddr32(WDC_DEVICE_HANDLE hDev, DWORD dwAddrSpace,
KPTR dwOffset, UINT32 *val);
在32位系统下调用完全OK,换成64位系统提示堆栈被破坏,我刚开始以为改成WDC_ReadAddr64就可以了,后来发现跟这个没关系