トップページ > 記事閲覧
IDXGIOutput を取得します.... 失敗
名前:あららさん 日時: 2017/06/18 16:02

初心者です。簡単なブロック崩しが完成したので公開したいのですが、原因不明のエラーが出てしまって困っています。 Releaseフォルダ内のexeを実行すると最初は普通にゲームが動くのですが、ボールがブロックに衝突した瞬間、終了処理がされてしまうようです。 Logの出力を掲載致します。 352:「IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004」、309:「BEEP音用のサウンドバッファの作成に失敗しました」 がどうやらエラーっぽいのですが、まったく思い当たりがなく解決できません。 Debugフォルダ内のexeでは通常通り動くのですが・・・。 どなたか解決法を教えてください。 0:ChangeWindowMode実行 0:ウインドウモードフラグが立てられました 5:DXライブラリの初期化処理開始 14: システムの情報を出力します 14: DXライブラリ Ver3.18a 15: 論理プロセッサの数 : 8 15: OS Windows10 ( Build 15063 ) 116: 現時点のCPU動作速度:大体3.39GHz 116: MMX命令を使用します 116: SSE命令が使用可能です 117: SSE2命令が使用可能です 117: CPUベンダ:GenuineIntel 119: CPU名:Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 119: COMの初期化... 成功 126: 非同期読み込み処理の初期化...成功 127: ファイルアクセス処理の初期化...成功 128: メモリ総量:16272.81MB 空きメモリ領域:9343.70MB 128: タイマーの精度を検査します 129: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 129: パフォーマンスカウンターを使用します タイマー精度 : 3328.125000 KHz 130: ソフトの二重起動検査... 二重起動はされていませんでした 131: ウインドウクラスを登録します... 登録に成功しました 132: ウインドウモード起動用のウインドウを作成します 132: ディスプレイ情報のセットアップ開始 134: モニターの数:2 ディスプレイデバイスの数:7 135: No.0 モニター名:\\.\DISPLAY5 1920x1080 32bit 60Hz 135: No.1 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz 169: ディスプレイ情報のセットアップ完了 170: ウインドウの作成に成功しました 171: ウインドウを表示します 186: IMEを無効にしました 187: ウインドウスタイルをウインドウモード用に変更します... 完了 206: DirectInput関係初期化処理 206: XInput DLL の読み込み中... 成功 208: DirectInput7 の取得中... DirectInput8 の取得を試みます...成功 214: 引き続き初期化処理... 初期化成功 218: ジョイパッドの初期化... 228: ジョイパッドの初期化は正常に終了しました 228: マウスデバイスの初期化... 初期化成功 229: キーボードデバイスの初期化... 初期化成功 232: DirectInput 関連の初期化は正常に終了しました 236: DirectSound の初期化を行います 236: DirectSound インターフェースの取得を行います.... 成功 237: 引き続きインターフェースの初期化処理... 成功 304: DirectSound デバイスを列挙します 305: Module Name : Description : プライマリ サウンド ドライバー 305: Module Name : {0.0.0.00000000}.{caf3bf03-f70b-4594-ade3-1e6edf3e2be7} Description : 1-2 (QUAD-CAPTURE) 305: Module Name : {0.0.0.00000000}.{017e545d-012a-4804-9d85-fbe49dc32a24} Description : VX228-4 (NVIDIA High Definition Audio) 305: Module Name : {0.0.0.00000000}.{095f7300-5c8a-4b57-aae0-05309f4a5c2f} Description : GH-ACJ223SH (インテル(R) ディスプレイ用オーディオ) 306: Module Name : {0.0.0.00000000}.{455931e9-e426-4cb2-9782-ffac02eccd33} Description : スピーカー (Realtek High Definition Audio) 306: Module Name : {0.0.0.00000000}.{6a76c105-417c-40c3-879a-f296f317dd3c} Description : 3-4 (QUAD-CAPTURE) 306: Module Name : {0.0.0.00000000}.{c2bfa55d-ec7e-4ce0-af6e-174375c35d52} Description : Realtek Digital Output (Realtek High Definition Audio) 306: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 307: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 307: 利用可能サンプリング精度 307: Primary 16bit = OK 8bit = OK 307: Secondary 16bit = OK 8bit = OK 308: 利用可能チャンネル 308: Primary MONO = OK STEREO = OK 308: Secondary MONO = OK STEREO = OK 308: DirectSound の初期化は正常に終了しました 309: BEEP音用のサウンドバッファの作成に失敗しました 309: d3d11.dll の読み込み.... 成功 311: dxgi.dll の読み込み.... 成功 311: API CreateDXGIFactory1 のアドレスを取得します.... 成功 312: IDXGIFactory1 を作成します.... 成功 314: API D3D11CreateDevice のアドレスを取得します.... 成功 314: IDXGIAdapter を取得します.... 成功 315: Direct3D 11 FeatureLevel 11_0 以上を対象とします 315: ID3D11Device オブジェクトを取得します.... 成功 346: IDXGIDevice1 を取得します.... 成功 347: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 347: [ウインドウモード 640x480] 347: IDXGISwapChain を作成します.... 成功 352: IDXGIFactory->CreateSwapChain の戻り値:0x00000000 352: IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004 362: d3d11.dll の解放 1 363: dxgi.dll の解放 1 363: Direct3D11 のオブジェクト数を出力 363: Direct3D11 のオブジェクト合計数 : 0 364: DirectDraw オブジェクトの取得を行います.... 成功 367: 引き続き初期化処理... 初期化に成功しました 397: IDirect3D9Ex オブジェクトを取得します.... 成功 404: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 675: 成功 675: Driver:nvldumd.dll Description:NVIDIA GeForce GTX 1070 676: 画面のフォーマットは D3DFMT_X8R8G8B8 です 676: 16bit Zバッファフォーマットは D3DFMT_D16 です 676: 24bit Zバッファフォーマットは D3DFMT_D24X8 です 677: 32bit Zバッファフォーマットは D3DFMT_D24X8 です 677: 16bit カラーフォーマットは D3DFMT_R5G6B5 です 677: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 677: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 678: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 678: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 678: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 678: DXT1テクスチャフォーマットはD3DFMT_DXT1 です 679: DXT2テクスチャフォーマットはD3DFMT_DXT2 です 679: DXT3テクスチャフォーマットはD3DFMT_DXT3 です 679: DXT4テクスチャフォーマットはD3DFMT_DXT4 です 679: DXT5テクスチャフォーマットはD3DFMT_DXT5 です 680: ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 680: ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 680: ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 680: 1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 681: 1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 681: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です 681: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です 681: 2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 681: 2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 682: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です 682: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です 682: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 682: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 683: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 683: 描画用 ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 683: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 683: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 684: 描画用1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_L8 です 684: 描画用1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_L16 です 684: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です 684: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です 684: 描画用2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 685: 描画用2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 685: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です 685: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です 685: 一度に描画できるプリミティブの最大数:16777215 686: 対応している最大頂点インデックス:16777215 686: 同時にレンダリングできるバッファの数:4 686: 最大テクスチャサイズ 幅:16384 高さ:16384 686: テクスチャステージテンポラリレジスタ:使用可 687: 減算合成のハードウェア対応:ネイティブ 687: ハードウェア頂点シェーダーバージョンコード:300 687: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 687: ピクセルシェーダーバージョンコード:300 688: フルシーンアンチエイリアスを使用する場合はバックバッファはロックできません 688: Zバッファを作成します.... 成功 697: プログラマブルシェーダーを使用します 731: フォントの初期化を行います 732: フォントの初期化は正常に終了しました 738: 文字コードバッファの初期化を行います... 完了しました 740:DXライブラリの初期化処理終了 5587:ウインドウを閉じようとしています 5594:ウインドウが破棄されようとしています 5594:ソフトを終了する準備が整いました 5598:フォントの初期化を行います 5598:フォントの初期化は正常に終了しました 5600:Direct3DDevice9 の解放 2 5617:d3d9.dll の解放 1 5617:DirectInput 関連の終了処理... 完了 5622:DirectSound の終了処理は正常に終了しました 5673: 5673:Alloc memory dump 5673: Total size:0(0.000kb) Alloc num:0 5674:
メンテ

Page: 1 |

Re: IDXGIOutput を取得します.... 失敗 ( No.1 )
名前:あららさん 日時:2017/06/18 16:37

追記: ハンドルされない例外が 0x77C29A8A (ntdll.dll) で発生しました(ブロック崩し.exe 内): 0xC0000374: ヒープは壊れています。 (パラメーター: 0x77C658E8)。 というエラーメッセージを見つけました。 どのようにすればよいでしょうか?
メンテ
Re: IDXGIOutput を取得します.... 失敗 ( No.2 )
名前:こーら 日時:2017/06/18 19:03

おそらく自動変数を初期化していなどのプログラムのミスが原因だと思います。 Debugビルドでは問題ないとのことなのでプログラムを見直してみる以外方法はなさそうです。
メンテ
Re: IDXGIOutput を取得します.... 失敗 ( No.3 )
名前:あららさん 日時:2017/06/18 21:47

返信ありがとうございます。 その通りでした。 メモリ解放が必要以上に行われていた模様です。 解決いたしました、ありがとうございました。
メンテ
Re: IDXGIOutput を取得します.... 失敗 ( No.4 )
名前:管理人 日時:2017/06/18 21:53

こーらさんが仰られています通り、ボールがブロックに衝突した瞬間にプログラムが終了してしまう原因は あららさんが作成されたプログラムに原因がある可能性が高いので、こーらさんが仰られていますように 初期化していないローカル変数を使用していないかや、ローカル配列の範囲外の部分にアクセスしてしまって いないかなどを調べてみてください ( この辺りは「Debugビルドでも問題はあったのだけど運良く動いていて、Releaseビルドにすると問題が 表面化して動かなくなる」原因として最も多いです ) ただ、「BEEP音用のサウンドバッファの作成に失敗しました」はDXライブラリのバグなので、修正します 「IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004」も原因を調べて見ます
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存