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