これまでのところ、私のプログラムはかなりうまく機能しています。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() アサートは失敗しませんか?)。これらの関数を変更して、プログラムを続行するかどうかをプログラムに伝えるブール値を返す必要がありますか? プログラム全体を停止させる必要がありますか (これは少し奇妙に感じます)。おそらく、間違った方法でロックしている四角形を処理していますか (アサートで動作するはずです)?
エラー: アサーションに失敗しました! - !FAILED(結果)
どんな助け/アドバイスも感謝します!