デフォルトの DirectX12 アプリケーション (回転する 3D キューブ)void DX::DeviceResources::Present()
を作成し、その中でバックバッファーをファイルに書き込もうとしています。
// Present the contents of the swap chain to the screen.
void DX::DeviceResources::Present()
{
// The first argument instructs DXGI to block until VSync, putting the application
// to sleep until the next VSync. This ensures we don't waste any cycles rendering
// frames that will never be displayed to the screen.
HRESULT hr = m_swapChain->Present(1, 0);
UINT backBufferIndex = m_swapChain->GetCurrentBackBufferIndex();
ComPtr<ID3D12Resource> spBackBuffer;
m_swapChain->GetBuffer(backBufferIndex, IID_PPV_ARGS(&spBackBuffer));
//before writing the buffer, I want to check that the file is being
//created
ofstream myfile;
myfile.open("WHEREISTHEFILE.txt");
myfile << "Writing this to a file.\n";
myfile.close();
// If the device was removed either by a disconnection or a driver upgrade, we
// must recreate all device resources.
if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET)
{
m_deviceRemoved = true;
}
else
{
DX::ThrowIfFailed(hr);
MoveToNextFrame();
}
}
ここで問題が発生します。
ofstream myfile;
myfile.open("WHEREISTHEFILE.txt");
myfile << "Writing this to a file.\n";
myfile.close();
バックバッファの内容を書き込もうとする前に、最初にファイルを書きたいだけです(ここで方法を示しています)。なんらかの理由で、出力ファイルが見つかりません...プロジェクト内のすべてのディレクトリ、さらには Microsoft DirectX SDK フォルダーまで、あらゆる場所を検索しました。
例外はスローされず、エラーなしでデバッグ中に各行をステップ実行できます。
それはどこでしょうか?