如题,在锁屏或者屏保后切回来,调用IDirectDrawSurface7_Lock直接报ACCESS VIOLATION,看汇编是PC寄存器值为0,调用了一个0地址函数,具体是哪个库忘记了,是ddraw.dll调用的下一层.如果是在win7 32位或者较早的windows版本中,同样情况下调用IDirectDrawSurface7_Lock只是返回DDERR_SURFACELOST错误,Restore一下即可,请教一下谁碰见过这个问题,如何处理.
目前能确认的是传入的参数全部是正确的,其实就2个,一个surface ,一个ddsd结构,成员size已经初始化.所用的编译器是vs2008与vs2012都会出错.