トップページ > 記事閲覧
ハード・ドライブ依存(?)のグラフィック読み込みエラー
名前:すっぴー 日時: 2013/11/09 14:11

相対パスで画像パスを指定してLoadGraph,LoadDivGraphをしているのですがReleaseビルドしたexeを、USBや、一部のPCから起動すると読み込み時にフリーズし、強制終了を余儀なくされます。またフリーズしたPCにVS2010のソリューションを移し、Releaseモードで実行した際は成功します。
メンテ

Page: 1 |

Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.1 )
名前:管理人 日時:2013/11/10 17:28

Debugビルドでは問題が発生してしまう環境でも正常に動作するのでしょうか? あと、USBはHDDよりもアクセス速度がかなり低いので、フリーズしているのではなく ファイルを読み込んでいる最中である可能性があります
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.2 )
名前:すっぴー 日時:2013/11/12 19:32

LoadGraphの前後でコンソールに出力をして調べたのですが、 幾つかのファイルを順調に読み込んだ後に特定のファイルでフリーズをするので、USBは読み込み速度の問題ではないようです。 Debugビルドも、C++のソリューション経由であれば問題なく動作しました。 画像ファイルをすべて抜いてexeを起動すると正常に動作します(画像は表示されません) また、フリーズの際に読んでいた画像のみを除去しても、その次の読み込みにてフリーズしました。
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.3 )
名前:すっぴー 日時:2013/11/12 19:37

追記 Debugビルドで生成されるexeファイルは、Release版exeにてフリーズする環境下でも正常に動作します(FPSは著しく低下しますが) 関係があるかは不明ですが、読み込みはポインタからnewでint型を生成したのちに読み込んでいます
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.4 )
名前:管理人 日時:2013/11/13 00:12

幾つかご質問させてください 1.関数リファレンスにある LoadGraph のサンプルプログラムのような  シンプルなものでも同様の現象は発生しますでしょうか? 2.Releaseビルドのプロジェクトの設定で、『構成プロパティ』→『全般』の中にある  『プログラム全体の最適化』を『プログラム全体の最適化なし』にしても同様の  現象は発生しますでしょうか? あと、プログラムを実行した際に Log.txt というファイルが生成されますので、 よろしければその中身をこちらの掲示板にコピー&ペーストしていただけないでしょうか?
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.5 )
名前:すっぴー 日時:2013/11/13 16:06

前回の書き込み時点でのLogファイルを以下に添付します。見る限りではエラーが発生している様子はないのですが… 0:システムの情報を出力します 16: DXライブラリ Ver3.05 16: 論理プロセッサの数 : 8 16: OS Windows7 ( Build 7601 Service Pack 1 ) 131: CPU動作速度:大体3.26GHz 135: MMX命令を使用します 139: SSE命令が使用可能です 143: SSE2命令が使用可能です 148: CPUベンダ:GenuineIntel 168: CPU名: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 172:COMの初期化... 成功しました 180:メモリ総量:8132.47MB 空きメモリ領域:5985.51MB 185:タイマーの精度を検査します 189:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 193: パフォーマンスカウンターを使用します タイマー精度 : 3312.929000 KHz 201: ソフトの二重起動検査... 二重起動はされていませんでした 213:ウインドウクラスを登録します... 登録に成功しました 221:ウインドウモード起動用のウインドウを作成します 225:ウインドウの作成に成功しました 246:IMEを無効にしました 250:ウインドウスタイルをウインドウモード用に変更します... 完了 258:DirectInput関係初期化処理 262: DirectInput7 の取得中... 成功 274: 引き続き初期化処理... 初期化成功 284: ジョイパッドの初期化... 290: ジョイパッドの初期化は正常に終了しました 294: マウスデバイスの初期化... 初期化成功 302: キーボードデバイスの初期化... 初期化成功 311:DirectInput 関連の初期化は正常に終了しました 316:DirectSound の初期化を行います 320:DirectSound インターフェースの取得を行います.... 成功 330:引き続きインターフェースの初期化処理... 成功 374: DirectSound デバイスを列挙します 378: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 383: モジュール名:{0.0.0.00000000}.{055f2633-5345-483d-883e-8070e36bdc53} ドライバ記述:スピーカー (Realtek High Definition Audio) 387: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 391: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 395: 利用可能サンプリング精度 399: プライマリ 16bit = OK 8bit = OK 403: セカンダリ 16bit = OK 8bit = OK 407: 利用可能チャンネル 411: プライマリ MONO = OK STEREO = OK 415: セカンダリ MONO = OK STEREO = OK 419:DirectSound の初期化は正常に終了しました 427:DirectDraw オブジェクトの取得を行います.... 成功 438:引き続き初期化処理... 初期化に成功しました 534:IDirect3D9Ex オブジェクトを取得します.... 成功 561:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 879:成功 883:Driver:aticfx32.dll Description:AMD Radeon HD 7350 Graphics 888:画面のフォーマットは D3DFMT_X8R8G8B8 です 892:Zバッファのフォーマットは D3DFMT_D16 です 896:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 901:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 905:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 909:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 913:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 917:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 921:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 926:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 930:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 935:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 939:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 943:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です 947:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 952:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 956:最大テクスチャサイズ 幅:16384 高さ:16384 960:テクスチャステージテンポラリレジスタ:使用可 964:減算合成のハードウェア対応:ネイティブ 968:頂点シェーダーバージョンコード:300 972:ピクセルシェーダーバージョンコード:300 1013:バックバッファロック転送の時間:10243nsec 一時的な描画可能バッファを使用した転送の時間:702nsec 1017:バックバッファロックを使用しません 1021:Zバッファを作成します.... 成功 1036:プログラマブルシェーダーを使用します 1091:フォントの初期化を行います 1101:フォントの初期化は正常に終了しました 1105:文字コードバッファの初期化を行います... 完了しました
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.6 )
名前:すっぴー 日時:2013/11/13 16:08

同ソリューションにてコード生成の最適化を切ったReleaseビルドでも、exeからの起動にて同様の現象を確認しました
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.7 )
名前:すっぴー 日時:2013/11/13 16:11

LoadGraph関数リファレンスのコピー&ペーストでの正常動作を確認しました
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.8 )
名前:管理人 日時:2013/11/14 00:55

Log.txt の貼り付けありがとうございます ログを拝見する限りでは使用されているDXライブラリのバージョンが少し古いようです 最新版なら正常に動作するかもしれませんので、よろしければお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.9 )
名前:すっぴー 日時:2013/11/14 13:02

何度もご丁寧な対応ありがとうございます。リビルドを行ったのですが、やはり変化なく、フリーズしてしまいました。以下がログです 0:システムの情報を出力します 0: DXライブラリ Ver3.11a 0: 論理プロセッサの数 : 8 0: OS Windows7 ( Build 7601 Service Pack 1 ) 100: CPU動作速度:大体3.17GHz 100: MMX命令を使用します 100: SSE命令が使用可能です 101: SSE2命令が使用可能です 101: CPUベンダ:GenuineIntel 102: CPU名: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 103:COMの初期化... 成功しました 103:メモリ総量:8132.47MB 空きメモリ領域:4634.10MB 103:タイマーの精度を検査します 104:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 104: パフォーマンスカウンターを使用します タイマー精度 : 3312.949000 KHz 104: ソフトの二重起動検査... 二重起動はされていませんでした 105:ウインドウクラスを登録します... 登録に成功しました 106:ウインドウモード起動用のウインドウを作成します 106:ウインドウの作成に成功しました 107:ウインドウを表示します 121:IMEを無効にしました 121:ウインドウスタイルをウインドウモード用に変更します... 完了 141:DirectInput関係初期化処理 141: XInput DLL の読み込み中... 成功 146: DirectInput7 の取得中... 成功 149: 引き続き初期化処理... 初期化成功 150: ジョイパッドの初期化... 151: ジョイパッドの初期化は正常に終了しました 151: マウスデバイスの初期化... 初期化成功 152: キーボードデバイスの初期化... 初期化成功 153:DirectInput 関連の初期化は正常に終了しました 153:XAudio2 の初期化を行います 156: XAudio2 インターフェースの取得を行います.... XAudio2インターフェースの取得に失敗しました 157: DirectSound の初期化を行います 157: DirectSound インターフェースの取得を行います.... 成功 158: 引き続きインターフェースの初期化処理... 成功 177: DirectSound デバイスを列挙します 177: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 178: モジュール名:{0.0.0.00000000}.{055f2633-5345-483d-883e-8070e36bdc53} ドライバ記述:スピーカー (Realtek High Definition Audio) 178: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 178: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 178: 利用可能サンプリング精度 178: プライマリ 16bit = OK 8bit = OK 179: セカンダリ 16bit = OK 8bit = OK 179: 利用可能チャンネル 179: プライマリ MONO = OK STEREO = OK 179: セカンダリ MONO = OK STEREO = OK 179: DirectSound の初期化は正常に終了しました 181: DirectDraw オブジェクトの取得を行います.... 成功 182: 引き続き初期化処理... 初期化に成功しました 260: IDirect3D9Ex オブジェクトを取得します.... 成功 277: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 589: 成功 589: Driver:aticfx32.dll Description:AMD Radeon HD 7350 Graphics 590: 画面のフォーマットは D3DFMT_X8R8G8B8 です 590: 16bit Zバッファフォーマットは D3DFMT_D16 です 590: 24bit Zバッファフォーマットは D3DFMT_D24X8 です 591: 32bit Zバッファフォーマットは D3DFMT_D24X8 です 591: 16bit カラーフォーマットは D3DFMT_R5G6B5 です 591: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 591: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 592: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 592: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 592: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 592: DXT1テクスチャフォーマットはD3DFMT_DXT1 です 592: DXT2テクスチャフォーマットはD3DFMT_DXT2 です 593: DXT3テクスチャフォーマットはD3DFMT_DXT3 です 593: DXT4テクスチャフォーマットはD3DFMT_DXT4 です 593: DXT5テクスチャフォーマットはD3DFMT_DXT5 です 593: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 594: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 594: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 594: 描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 594: 描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 594: 描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 595: 描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 595: 描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 595: 描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 595: 描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 595: 描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 596: 描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 596: 描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 596: 描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 596: 一度に描画できるプリミティブの最大数:5592405 596: 対応している最大頂点インデックス:16777215 597: 同時にレンダリングできるバッファの数:4 597: 最大テクスチャサイズ 幅:16384 高さ:16384 597: テクスチャステージテンポラリレジスタ:使用可 597: 減算合成のハードウェア対応:ネイティブ 597: ハードウェア頂点シェーダーバージョンコード:300 597: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 598: ピクセルシェーダーバージョンコード:300 637: バックバッファロック転送の時間:10672nsec 一時的な描画可能バッファを使用した転送の時間:937nsec 637: バックバッファロックを使用しません 637: Zバッファを作成します.... 成功 760: プログラマブルシェーダーを使用します 815: フォントの初期化を行います 815: フォントの初期化は正常に終了しました 822: 文字コードバッファの初期化を行います... 完了しました
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.10 )
名前:管理人 日時:2013/11/17 19:34

お試しいただきありがとうございます うーん変化がありませんでしたか・・・ もし不都合が無ければ本件の現象が発生するプログラムのソースファイルとプロジェクトファイル、 あとプログラムの実行に必要なファイル一式を圧縮した状態でこちら BQE00322(あっとまーく)nifty.com ( (あっとまーく)を@に置き換えてください ) に送って頂けないでしょうか? 私の手元の環境で現象が再現すれば原因を探ることができると思いますので・・・
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.11 )
名前:すっぴー 日時:2013/11/19 17:12

お手数をおかけして、申し訳ありません。 指定されたアドレスにプロジェクトをZip圧縮して送信しました。 追記:動作しないPCにて、USB(F:\)経由で起動したところ正常に起動しました。 しかし同じファイルをデスクトップに移動して起動するとやはり動作を停止してしました。
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.12 )
名前:管理人 日時:2013/11/24 03:27

メール有難うございます、プログラムを拝見しました 私の環境でも強制終了する現象が再現しましたので( ただ、何回か繰り返していると強制終了 しなくなりました・・・ )、なんとか原因と思える箇所を見つけられました 恐らくですが、test.cpp 226行目の辺りの void Load(){ Img = new int(Dx_Debug::LoadGraph("images/01.png")); ExSpiralImg = new int[8]; Dx_Debug::LoadDivGraph("images/pipo-btleffect073.png",10,10,1,120,120,ExSpiralImg); } この部分が原因だと思います( int 型8個に対して10個のグラフィックハンドルを読み込んでいる ) 確保したメモリの範囲外をアクセスした場合もエラーが発生しないことがあるので、 Release ビルド時のみエラーが発生するというのも辻褄が合います 私の環境でもエラーが発生したりしなかったりなので断言はできませんが、この部分を new int[10] に変更した後に10回ほど試しましたが、エラーは発生しませんでした よろしければお試しください
メンテ
Re: ハード・ドライブ依存(?)のグラフィック読み込みエラー ( No.13 )
名前:すっぴー(解決) 日時:2013/11/26 17:11

返信が遅れてしまい申し訳ありません。訂正コードにて正常な動作を確認しました。 まさかそんな初歩的なミスだったとは…………お手数をおかけしまいました。
メンテ

Page: 1 |

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

   クッキー保存