到目前为止,我的程序运行良好。不幸的是,当我按ctrl+ alt+时del,它会引发错误。现在我已经阅读了这个问题:
使用 ctrl alt del 时的 E_ACCESSDENED
其中提到计算机切换到不同的屏幕(您没有任何写入权限)。只是我不知道我在当前屏幕是否有写权限。
我的代码如下所示:
void D3D::StartFrame() {
HRESULT result;
result = pDevice->Clear( 0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(FRAME_BG_R,FRAME_BG_G,FRAME_BG_B),0.0f,0 );
assert( !FAILED( result ) );
result = pBackBuffer->LockRect( &backRect,NULL,NULL );
assert( !FAILED( result ) );
}
void D3D::EndFrame() {
HRESULT result;
result = pBackBuffer->UnlockRect();
assert( !FAILED( result ) );
result = pDevice->Present( NULL,NULL,NULL,NULL );
assert( !FAILED( result ) );
}
目前我在每一帧都运行“StartFrame()”函数,然后是一些应该在帧期间完成的动作。最后,它将调用解锁绘图矩形的“EndFrame()”函数。
现在发生的错误来自最后一个断言( StartFrame() 断言没有失败?)。我是否应该更改这些函数以返回布尔值,告诉程序是否应该继续?我应该让它停止整个程序(感觉有点奇怪)吗?也许我正在以错误的方式处理矩形锁定(它应该与断言一起使用)吗?
错误:断言失败!- !失败(结果)
任何帮助/建议都将不胜感激!