1

この問題は、Rastertek DirectX 11 チュートリアルの 1 つを試してみると発生します。

  • プログラムがウィンドウモードで実行されるようconst bool fullscreen valueに変更しましたfalse
  • ウィンドウスタイルを から に変更しCLIPPINGWINDOWましたOVERLAPPEDWINDOW

ウィンドウが破棄されたときにプログラムが例外をスローすることを除いて、正常に動作します。

Unhandled exception at 0x779715ee in FrustumCulling.exe: 0xC0000005: Access violation reading location 0xfeeeff5e.

http://www.rastertek.com/dx11tut16.htmlのチュートリアル 16です。

私が行った唯一の変更は次のとおりです。

graphicsclass.h

const bool FULL_SCREEN = true //false;

SystemClass::InitializeWindows
{

...

m_hwnd = CreateWindowEx(WS_EX_APPWINDOW, m_applicationName, m_applicationName, 
            WS_OVERLAPPEDWINDOW,
            posX, posY, screenWidth, screenHeight, NULL, NULL, m_hinstance, NULL);

...

}
4

1 に答える 1

1

まだフルスクリーン モードでスワップチェーンをセットアップしている可能性はありますか? この問題に遭遇したとき、これを DxClass のデストラクタに追加すると解決しました

if(_swapChain != nullptr)
{
            _swapChain->SetFullscreenState(false, NULL);  
            _swapChain->Release();
            _swapChain = nullptr;
}

チュートリアルの 1 つにある Rastertek のコメントの 1 つによると、スワップチェーンはリリース前にフルスクリーンを false に設定する必要があります。

DXGI_SWAP_CHAIN_DESCリテラル bool 値ではなく使用している保証を設定し、swapChainDesc.Windowed = !FULL_SCREENFULL_SCREEN を false に設定していることを確認すると、それは実行さFULL_SCREEN = true //false;れず、コンパイルされません。

于 2013-03-27T11:36:20.147 に答える