Re: DxLib_Init()でエラー? ( No.10 ) |
- 名前:Saucer 日時:2015/05/04 01:21
いえ、私の場合はChangeWindowMode(FALSE)では無く、
ChangeWindowMode(TRUE)を呼ばないと正常に動作しないのです。
フルスクリーンの時はその後またChangeWindowMode(FALSE)
を呼ぶとフルスクリーンで正常に起動します。
slnファイル、有難うございます。
後で報告いたします。
|
Re: DxLib_Init()でエラー? ( No.11 ) |
- 名前:Saucer 日時:2015/05/04 09:10
報告いたします。
管理人様が用意してくださった sln ファイルは何のエラーも
発生せずに実行できました…
一応、管理人様の sln ファイルを実行した時のLog.txtも
最後に張り付けておきます。
また、エラーが発生する自作プロジェクト内で
「DXライブラリ置き場 使い方」の点を打つプログラム
を実行してみましたが、それも普通に実行できました…
ですが、やはり開発中のゲームはエラーが発生します。
どういうことでしょう…
また、もう一つエラーを見つけました。
開発中のゲームですが、一時しのぎということで現在 ChangeWindowMode(TRUE)を
呼んで、再び FALSEで呼び正常にフルスクリーンモードで起動させております。
その際、Alt+Tabでのウインドウ切り替えをしようとすると以下のエラーが
発生します。SetDrawScreen内で発生しているそうです。
Unhandled exception at 0x0028F636 in app_engine.exe: 0xC0000005:
Access violation reading location 0x00000008.
3.13dで同じソースを実行してみましたが、エラーは発生せずに
ウインドウ切り替えができました。
管理人様の sln 実行時のLog.txt:
0:設定されている画面設定 640x480 16bit color
15:対応している画面モードなし
15:設定されている画面設定 640x480 32bit color
15:システムの情報を出力します
15: DXライブラリ Ver3.14
15: 論理プロセッサの数 : 4
15: OS Windows8 ( Build 9200 )
130: 現時点のCPU動作速度:大体2.39GHz
131: MMX命令を使用します
132: SSE命令が使用可能です
135: SSE2命令が使用可能です
136: CPUベンダ:GenuineIntel
141: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
142:COMの初期化... 成功しました
157:メモリ総量:8087.27MB 空きメモリ領域:5416.35MB
158:タイマーの精度を検査します
159:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
160: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz
161: ソフトの二重起動検査... 二重起動はされていませんでした
163:ウインドウクラスを登録します... 登録に成功しました
164:フルスクリーンモード用のウインドウを作成します
166:ウインドウの作成に成功しました
166:ウインドウを表示します
171:カーソルを不可視にしました
171:IMEを無効にしました
193:DirectInput関係初期化処理
193: XInput DLL の読み込み中... 成功
196: DirectInput7 の取得中... 成功
317: 引き続き初期化処理... 初期化成功
319: マウスデバイスの初期化... 初期化成功
320: キーボードデバイスの初期化... 初期化成功
322:DirectInput 関連の初期化は正常に終了しました
325:DirectSound の初期化を行います
325:DirectSound インターフェースの取得を行います.... 成功
330:引き続きインターフェースの初期化処理... 成功
439: DirectSound デバイスを列挙します
442: Module Name : Description : Primary Sound Driver
443: Module Name : {0.0.0.00000000}.{8422ffc6-71c7-4dc5-8283-4088263566e2} Description : Speakers (Realtek High Definition Audio)
444: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
445: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
446: 利用可能サンプリング精度
447: Primary 16bit = OK 8bit = OK
447: Secondary 16bit = OK 8bit = OK
448: 利用可能チャンネル
449: Primary MONO = OK STEREO = OK
450: Secondary MONO = OK STEREO = OK
451:DirectSound の初期化は正常に終了しました
452:d3d11.dll の読み込み.... 成功
458:dxgi.dll の読み込み.... 成功
459:API CreateDXGIFactory のアドレスを取得します.... 成功
460:IDXGIFactory を作成します.... 成功
462:API D3D11CreateDevice のアドレスを取得します.... 成功
463:IDXGIAdapter を取得します.... 成功
464:Direct3D 11 FeatureLevel 11_0 以上を対象とします
465:ID3D11Device オブジェクトを取得します.... 成功
481:IDXGIDevice1 を取得します.... 成功
482:IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
483:[フルスクリーンモード] IDXGISwapChain を作成します.... 成功
1915:IDXGIOutput を取得します.... 成功
1938:スワップチェインのバッファの ID3D11Texture2D を取得します.... 成功
1942:スワップチェインのバッファの ID3D11ShaderResourceView を作成します.... 成功
1983:スワップチェインのバッファの ID3D11RenderTargetView を作成します.... 成功
2052:Graphics Device:Intel(R) HD Graphics Family
2054:画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
2055:16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
2055:24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
2056:32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
2056:カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
2057:DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
2058:DXT2テクスチャフォーマットは使えません
2058:DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
2059:DXT4テクスチャフォーマットは使えません
2059:DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
2060:描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
2060:描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
2061:描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
2062:描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
2062:描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
2063:描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
2063:描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
2064:描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
2065:描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
2065:描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
2066:描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
2066:描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
2067:描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
2068:描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
2068:使用する機能レベル:D3D_FEATURE_LEVEL_11_1
2078:同時にレンダリングできるバッファの数:8
2117:最大テクスチャサイズ 幅:16384 高さ:16384
2131:深度バッファを作成します.... 成功
2133:シェーダーコード関係の初期化.... 成功
2182:各種シェーダー用定数バッファの作成.... 成功
2185:各種 ID3D11InputLayout の作成.... 成功
2187:標準描画用の頂点バッファの作成.... 成功
2744:画像の単純転送処理の初期化... 成功
2753:フォントの初期化を行います
2767:フォントの初期化は正常に終了しました
2779:文字コードバッファの初期化を行います... 完了しました
6950:フォントの初期化を行います
6952:フォントの初期化は正常に終了しました
8354:d3d11.dll の解放 1
8355:dxgi.dll の解放 1
8356:Direct3D11 のオブジェクト数を出力
8356:Direct3D11 のオブジェクト合計数 : 0
8357:DirectInput 関連の終了処理... 完了
8382:DirectSound の終了処理は正常に終了しました
8383:ウインドウを閉じようとしています
8401:ウインドウが破棄されようとしています
8401:ソフトを終了する準備が整いました
8563:
8563:Alloc memory dump
8564: Total size:0(0.000kb) Alloc num:0
8565:
|
Re: DxLib_Init()でエラー? ( No.12 ) |
- 名前:管理人 日時:2015/05/04 12:36
お試しいただきありがとうございます
> 管理人様が用意してくださった sln ファイルは何のエラーも
> 発生せずに実行できました…
おお、そうですか・・・予想外の展開です (・・;;
> ですが、やはり開発中のゲームはエラーが発生します。
では、お試しいただいた sln ファイルのプロジェクトに Saucerさんが開発中の
プログラムファイルを追加してビルドして実行してみてもエラーなく動作してしまうか、
よろしければお試しいただけないでしょうか? m(_ _;m
> その際、Alt+Tabでのウインドウ切り替えをしようとすると以下のエラーが
> 発生します。SetDrawScreen内で発生しているそうです。
ありがとうございます
画面関係で発生しているので、「Integer division by zero.」のエラーが直れば
こちらのエラーも発生しなくなる可能性がありますので、とりあえず保留とさせてください
あと、すみません、No.8のこちらのご質問にお答えしていませんでした
> ところで、私は英語のPCを使っており、3.13dまではLog.txtをNotepadで開けると文字化け
> してたのですが、今回の3.13fのLog.txtは文字化けしません。何か仕様が変わったのですか?
はい、3.13f から Log.txt の文字コードが Unicode ( UTF-16LE ) になりました
今までは日本語版Windowsしか対応していない( 若しくは設定を変更して日本語をローカル言語
にしないと正常に処理されない ) Shift-JIS だったので、文字化けしていたのだと思います
|
Re: DxLib_Init()でエラー? ( No.13 ) |
- 名前:Saucer 日時:2015/05/05 08:04
有難うございます。
エラーで停止した箇所が分かりました!
ソースファイルは「DxGraphics.cpp」、行番号は「17359」です:
if( BackBufferPosY != NULL )
{
*BackBufferPosY = ( ScreenPosY - GSYS.Screen.FullScreenScalingDestRect.top ) * GSYS.Screen.MainScreenSizeY / ( GSYS.Screen.FullScreenScalingDestRect.bottom - GSYS.Screen.FullScreenScalingDestRect.top ) ;
}
前と同様、「Integer division by zero.」のエラーです。
宜しくお願い致します!
|
Re: DxLib_Init()でエラー? ( No.14 ) |
- 名前:管理人 日時:2015/05/06 02:11
お試しいただきありがとうございます!
GSYS.Screen.FullScreenScalingDestRect.bottom - GSYS.Screen.FullScreenScalingDestRect.top
↑こちらの計算結果が 0 になっている、ということのようです
恐らくモニター解像度の取得に失敗しているのだと思うのですが、まだ確証が得られません・・・
何度も申し訳ありません、よろしければこちらのモニター解像度についての情報を
Log.txt に出力するようにしたバージョンで実行していただき、エラーが発生した際の
Log.txt の内容を貼り付けていただけないでしょうか? m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用
( 一応こちらも更新しました )
https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe
ところで No.11 の時点ではエラーは発生しなかったとのことですが、今回のエラー発生に関しては
何か変更を施されたのでしょうか?
|
Re: DxLib_Init()でエラー? ( No.15 ) |
- 名前:Saucer 日時:2015/05/06 09:56
有難うございます。
No.11は、本来要らない筈の一時しのぎ(ワークアラウンド)があればエラーは発生しないということで、
No.13は、ワークアラウンドを削除することでエラーを発生させました。
つまり
ChangeWindowMode(TRUE);
/*いろんな画面関係の処理*/
ChangeWindowMode(FALSE);
ですとエラーが発生しない。
//ChangeWindowMode(TRUE);
/*いろんな画面関係の処理*/
ChangeWindowMode(FALSE);
だとエラーが発生する。ということだったのですが…↓
No.14で管理人様がご用意くださった 3.14では、ワークアラウンド無しでも
「Integer division by zero.」のエラーは発生しなくなりました…
どういうことでしょう…
また、Alt+Tabでウインドウ切り替えをしようとするとNo.11の
「Access violation reading location 0x00000008.」のエラーは発生します。
エラーはSetDrawScreenの中で発生しているらしく、ソースファイル内で
停止する箇所は「DxGraphicsD3D11.cpp」の行番号 5520だそうです。
DX_D3D11_VS_CONST_BUFFER_BASE *ConstantVSBase = ( DX_D3D11_VS_CONST_BUFFER_BASE * )GD3D11.Device.Shader.Constant.ConstBuffer_VS_Base->SysmemBuffer ;
ってところです。
一応Alt+Tabをせずに正常にプログラムを終了させた時の Log.txtと、
Alt+Tabでエラーが発生した時の Log.txt、二通り張り付けておきます。
Alt+Tabをせずに、プログラムを正常に終了させた場合:
0:設定されている画面設定 1920x1080 32bit color
1:システムの情報を出力します
2: DXライブラリ Ver3.14
2: 論理プロセッサの数 : 4
3: OS Windows8 ( Build 9200 )
104: 現時点のCPU動作速度:大体2.38GHz
104: MMX命令を使用します
105: SSE命令が使用可能です
106: SSE2命令が使用可能です
106: CPUベンダ:GenuineIntel
108: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
109:COMの初期化... 成功しました
119:メモリ総量:8087.27MB 空きメモリ領域:5072.83MB
120:タイマーの精度を検査します
121:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
121: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz
123: ソフトの二重起動検査... 二重起動はされていませんでした
125:ウインドウクラスを登録します... 登録に成功しました
126:フルスクリーンモード用のウインドウを作成します
128:ウインドウの作成に成功しました
129:ウインドウを表示します
144:カーソルを不可視にしました
146:IMEを無効にしました
178:DirectInput関係初期化処理
179: XInput DLL の読み込み中... 成功
181: DirectInput7 の取得中... 成功
309: 引き続き初期化処理... 初期化成功
315: マウスデバイスの初期化... 初期化成功
319: キーボードデバイスの初期化... 初期化成功
324:DirectInput 関連の初期化は正常に終了しました
329:DirectSound の初期化を行います
331:DirectSound インターフェースの取得を行います.... 成功
338:引き続きインターフェースの初期化処理... 成功
485: DirectSound デバイスを列挙します
487: DSOUND.DLL のロードに失敗しました
489: DirectSound の初期化は正常に終了しました
490: d3d11.dll の読み込み.... 成功
494: dxgi.dll の読み込み.... 成功
495: API CreateDXGIFactory のアドレスを取得します.... 成功
496: IDXGIFactory を作成します.... 成功
498: API D3D11CreateDevice のアドレスを取得します.... 成功
499: IDXGIAdapter を取得します.... 成功
500: Direct3D 11 FeatureLevel 11_0 以上を対象とします
501: ID3D11Device オブジェクトを取得します.... 成功
518: IDXGIDevice1 を取得します.... 成功
519: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
520: [フルスクリーンモード] IDXGISwapChain を作成します.... 成功
974: IDXGIOutput を取得します.... 成功
976: スワップチェインのバッファの ID3D11Texture2D を取得します.... 成功
978: スワップチェインのバッファの ID3D11ShaderResourceView を作成します.... 成功
979: スワップチェインのバッファの ID3D11RenderTargetView を作成します.... 成功
982: Graphics Device:Intel(R) HD Graphics Family
983: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
984: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
985: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
986: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
987: カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
988: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
989: DXT2テクスチャフォーマットは使えません
990: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
991: DXT4テクスチャフォーマットは使えません
992: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
993: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
994: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
995: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
996: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
997: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
998: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
999: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
999: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
1000: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
1001: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
1003: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
1004: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
1005: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
1006: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
1006: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1
1007: 同時にレンダリングできるバッファの数:8
1008: 最大テクスチャサイズ 幅:16384 高さ:16384
1010: 深度バッファを作成します.... 成功
1015: シェーダーコード関係の初期化.... 成功
1060: 各種シェーダー用定数バッファの作成.... 成功
1062: 各種 ID3D11InputLayout の作成.... 成功
1064: 標準描画用の頂点バッファの作成.... 成功
1579: 画像の単純転送処理の初期化... 成功
1583: フォントの初期化を行います
1588: フォントの初期化は正常に終了しました
1589: 文字コードバッファの初期化を行います... 完了しました
4669: フォントの初期化を行います
4673: フォントの初期化は正常に終了しました
5099: d3d11.dll の解放 1
5101: dxgi.dll の解放 1
5102: Direct3D11 のオブジェクト数を出力
5103: Direct3D11 のオブジェクト合計数 : 0
5105: DirectInput 関連の終了処理... 完了
5134: DirectSound の終了処理は正常に終了しました
5137: ウインドウを閉じようとしています
5153: ウインドウが破棄されようとしています
5154: ソフトを終了する準備が整いました
5240:
5241: Alloc memory dump
5241: Total size:0(0.000kb) Alloc num:0
5242:
プログラム実行中にAlt+Tabをしてエラーを発生させた場合:
0:設定されている画面設定 1920x1080 32bit color
0:システムの情報を出力します
0: DXライブラリ Ver3.14
2: 論理プロセッサの数 : 4
2: OS Windows8 ( Build 9200 )
103: 現時点のCPU動作速度:大体2.37GHz
103: MMX命令を使用します
104: SSE命令が使用可能です
105: SSE2命令が使用可能です
105: CPUベンダ:GenuineIntel
107: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
108:COMの初期化... 成功しました
117:メモリ総量:8087.27MB 空きメモリ領域:5035.21MB
118:タイマーの精度を検査します
118:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
119: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz
120: ソフトの二重起動検査... 二重起動はされていませんでした
122:ウインドウクラスを登録します... 登録に成功しました
123:フルスクリーンモード用のウインドウを作成します
127:ウインドウの作成に成功しました
128:ウインドウを表示します
141:カーソルを不可視にしました
143:IMEを無効にしました
168:DirectInput関係初期化処理
168: XInput DLL の読み込み中... 成功
171: DirectInput7 の取得中... 成功
304: 引き続き初期化処理... 初期化成功
309: マウスデバイスの初期化... 初期化成功
312: キーボードデバイスの初期化... 初期化成功
315:DirectInput 関連の初期化は正常に終了しました
319:DirectSound の初期化を行います
320:DirectSound インターフェースの取得を行います.... 成功
328:引き続きインターフェースの初期化処理... 成功
410: DirectSound デバイスを列挙します
412: DSOUND.DLL のロードに失敗しました
413: DirectSound の初期化は正常に終了しました
414: d3d11.dll の読み込み.... 成功
419: dxgi.dll の読み込み.... 成功
420: API CreateDXGIFactory のアドレスを取得します.... 成功
421: IDXGIFactory を作成します.... 成功
423: API D3D11CreateDevice のアドレスを取得します.... 成功
424: IDXGIAdapter を取得します.... 成功
425: Direct3D 11 FeatureLevel 11_0 以上を対象とします
426: ID3D11Device オブジェクトを取得します.... 成功
443: IDXGIDevice1 を取得します.... 成功
444: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
445: [フルスクリーンモード] IDXGISwapChain を作成します.... 成功
845: IDXGIOutput を取得します.... 成功
847: スワップチェインのバッファの ID3D11Texture2D を取得します.... 成功
848: スワップチェインのバッファの ID3D11ShaderResourceView を作成します.... 成功
850: スワップチェインのバッファの ID3D11RenderTargetView を作成します.... 成功
855: Graphics Device:Intel(R) HD Graphics Family
857: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
861: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
863: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
864: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
865: カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
866: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
867: DXT2テクスチャフォーマットは使えません
868: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
869: DXT4テクスチャフォーマットは使えません
870: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
871: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
872: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
873: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
874: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
875: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
879: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
885: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
886: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
887: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
888: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
889: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
890: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
892: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
893: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
893: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1
894: 同時にレンダリングできるバッファの数:8
895: 最大テクスチャサイズ 幅:16384 高さ:16384
896: 深度バッファを作成します.... 成功
897: シェーダーコード関係の初期化.... 成功
941: 各種シェーダー用定数バッファの作成.... 成功
943: 各種 ID3D11InputLayout の作成.... 成功
945: 標準描画用の頂点バッファの作成.... 成功
1442: 画像の単純転送処理の初期化... 成功
1445: フォントの初期化を行います
1451: フォントの初期化は正常に終了しました
1452: 文字コードバッファの初期化を行います... 完了しました
3771: d3d11.dll の解放 1
3781: dxgi.dll の解放 1
3783: Direct3D11 のオブジェクト数を出力
3785: Direct3D11 のオブジェクト合計数 : 0
|
Re: DxLib_Init()でエラー? ( No.16 ) |
- 名前:管理人 日時:2015/05/06 12:22
ご返答ありがとうございます
> No.14で管理人様がご用意くださった 3.14では、ワークアラウンド無しでも
> 「Integer division by zero.」のエラーは発生しなくなりました…
これまでのログの冒頭を拝見する限りではエラーが発生する際は
> 0:設定されている画面設定 640x480 16bit color
> 15:対応している画面モードなし
> 15:設定されている画面設定 640x480 32bit color
> 15:対応している画面モードなし
> 15:システムの情報を出力します
> 15: DXライブラリ Ver3.13f
こちらのように 解像度 640x480 に対応していないと出力されているのですが、今回載せていただいた
> Alt+Tabをせずに、プログラムを正常に終了させた場合:
のログの冒頭は
> 0:設定されている画面設定 1920x1080 32bit color
> 1:システムの情報を出力します
> 2: DXライブラリ Ver3.14
と、解像度は 1920x1080 と出力されています
『ワークアラウンド無しでも「Integer division by zero.」エラーが発生しない』実行の際の
DxLib_Init 呼び出しの前に
SetGraphMode( 1920, 1080, 32 ) ;
のような、SetGraphMode による解像度設定を行われていないでしょうか?
本件のエラーは
「DXライブラリのデフォルト解像度である 640x480 に対応していない環境での
フルスクリーンモード起動の際に DxLib_Init 呼び出しの前に SetGraphMode による
対応している解像度の設定や ChangeWindowMode を使用したエラー回避処理を行わないと発生するエラー」
ではないかと推測していますので、もし
『ワークアラウンド無しでも「Integer division by zero.」エラーが発生しない』 実行の際に
DxLib_Init 呼び出しの前に SetGraphMode を使用されていましたら、それをコメントアウトした状態で
実行してみてください、その場合、ログの冒頭は
> 0:設定されている画面設定 640x480 16bit color
> 2:ディスプレイ情報のセットアップ開始
> 3: モニターの数:1 ディスプレイデバイスの数:7
> 5: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz
> 38:ディスプレイ情報のセットアップ完了
> 39:対応している画面モードなし
> 39:設定されている画面設定 640x480 32bit color
> 40:対応している画面モードなし
> 40:システムの情報を出力します
> 41: DXライブラリ Ver3.14
こちらのように No.14 で追加した『ディスプレイ情報のセットアップ開始』以下のログ出力がされると思います
私の推測では Saucerさんの環境では『ディスプレイ情報のセットアップ開始』以下に出力されている
モニターの情報が正常に取得できていないのではないかと思っているのですが、推測の域を出ないので
こちらのログ出力で確認したいと思っています
あと、「Integer division by zero.」エラーと「Access violation reading location 0x00000008.」エラーは
関連していると思いますので、まず「Integer division by zero.」エラーの原因を探りたいと思います
何度も申し訳ありませんが、よろしければご確認ください m(_ _;m
|
Re: DxLib_Init()でエラー? ( No.17 ) |
- 名前:Saucer 日時:2015/05/06 13:41
解像度の設定はこのスレを立てた時からしております。
また、これまで(ワークアラウンドの部分以外は)特にソースを変えてません。
つまりゲームのソースは何も変えてないのに、DxLibをNo.14のファイルに
(3.13fから3.14に)変えたら「Integer division by zero.」のエラーが
発生しなくなったのです…
一応SetGraphModeをコメントアウトして実行してみましたが、
やはりエラーは発生しませんでした…
こちらがコメントアウトして実行した時のログです。
No.14のファイルを使っておりますが、「ディスプレイ情報のセットアップ開始」
の出力がされていないようです。
0:設定されている画面設定 640x480 16bit color
0:対応している画面モードなし
1:設定されている画面設定 640x480 32bit color
1:システムの情報を出力します
2: DXライブラリ Ver3.14
3: 論理プロセッサの数 : 4
3: OS Windows8 ( Build 9200 )
105: 現時点のCPU動作速度:大体2.38GHz
105: MMX命令を使用します
106: SSE命令が使用可能です
107: SSE2命令が使用可能です
108: CPUベンダ:GenuineIntel
110: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
111:COMの初期化... 成功しました
119:メモリ総量:8087.27MB 空きメモリ領域:5439.44MB
120:タイマーの精度を検査します
121:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
122: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz
123: ソフトの二重起動検査... 二重起動はされていませんでした
124:ウインドウクラスを登録します... 登録に成功しました
125:フルスクリーンモード用のウインドウを作成します
128:ウインドウの作成に成功しました
128:ウインドウを表示します
142:カーソルを不可視にしました
143:IMEを無効にしました
168:DirectInput関係初期化処理
169: XInput DLL の読み込み中... 成功
171: DirectInput7 の取得中... 成功
295: 引き続き初期化処理... 初期化成功
299: マウスデバイスの初期化... 初期化成功
302: キーボードデバイスの初期化... 初期化成功
306:DirectInput 関連の初期化は正常に終了しました
311:DirectSound の初期化を行います
312:DirectSound インターフェースの取得を行います.... 成功
324:引き続きインターフェースの初期化処理... 成功
452: DirectSound デバイスを列挙します
458: DSOUND.DLL のロードに失敗しました
461: DirectSound の初期化は正常に終了しました
463: d3d11.dll の読み込み.... 成功
471: dxgi.dll の読み込み.... 成功
473: API CreateDXGIFactory のアドレスを取得します.... 成功
476: IDXGIFactory を作成します.... 成功
480: API D3D11CreateDevice のアドレスを取得します.... 成功
483: IDXGIAdapter を取得します.... 成功
485: Direct3D 11 FeatureLevel 11_0 以上を対象とします
486: ID3D11Device オブジェクトを取得します.... 成功
519: IDXGIDevice1 を取得します.... 成功
522: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
523: [フルスクリーンモード] IDXGISwapChain を作成します.... 成功
2100: IDXGIOutput を取得します.... 成功
2109: スワップチェインのバッファの ID3D11Texture2D を取得します.... 成功
2115: スワップチェインのバッファの ID3D11ShaderResourceView を作成します.... 成功
2122: スワップチェインのバッファの ID3D11RenderTargetView を作成します.... 成功
2126: Graphics Device:Intel(R) HD Graphics Family
2128: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
2130: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
2131: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
2133: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
2134: カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
2135: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
2136: DXT2テクスチャフォーマットは使えません
2140: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
2141: DXT4テクスチャフォーマットは使えません
2143: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
2144: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
2145: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
2147: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
2149: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
2150: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
2151: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
2153: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
2154: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
2155: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
2156: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
2157: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
2158: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
2159: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
2160: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
2161: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1
2162: 同時にレンダリングできるバッファの数:8
2162: 最大テクスチャサイズ 幅:16384 高さ:16384
2163: 深度バッファを作成します.... 成功
2164: シェーダーコード関係の初期化.... 成功
2206: 各種シェーダー用定数バッファの作成.... 成功
2208: 各種 ID3D11InputLayout の作成.... 成功
2209: 標準描画用の頂点バッファの作成.... 成功
2763: 画像の単純転送処理の初期化... 成功
2766: フォントの初期化を行います
2769: フォントの初期化は正常に終了しました
2770: 文字コードバッファの初期化を行います... 完了しました
7773: フォントの初期化を行います
7774: フォントの初期化は正常に終了しました
9104: d3d11.dll の解放 1
9105: dxgi.dll の解放 1
9106: Direct3D11 のオブジェクト数を出力
9107: Direct3D11 のオブジェクト合計数 : 0
9108: DirectInput 関連の終了処理... 完了
9133: DirectSound の終了処理は正常に終了しました
9134: ウインドウを閉じようとしています
9150: ウインドウが破棄されようとしています
9151: ソフトを終了する準備が整いました
9281:
9282: Alloc memory dump
9283: Total size:0(0.000kb) Alloc num:0
9285:
|
Re: DxLib_Init()でエラー? ( No.18 ) |
- 名前:管理人 日時:2015/05/06 15:14
お試しいただきありがとうございます
> 解像度の設定はこのスレを立てた時からしております。
> また、これまで(ワークアラウンドの部分以外は)特にソースを変えてません。
あれ? そうだったのですか・・・
Log.txt 冒頭のこちら
> 0:設定されている画面設定 640x480 16bit color
> 15:対応している画面モードなし
> 15:設定されている画面設定 640x480 32bit color
の出力にある解像度は DxLib_Init の呼び出し前に SetGraphMode で設定された値であるはずなので、
No.5 のログ出力の際は SetGraphMode が呼ばれてから上記ログ出力が行われるまでの間に
何らかの原因で解像度の設定が無効化されてしまっていたということになるわけですね・・・
> こちらがコメントアウトして実行した時のログです。
> No.14のファイルを使っておりますが、「ディスプレイ情報のセットアップ開始」
> の出力がされていないようです。
私の手元でアップしたファイルを使用して何度か試してみましたが、「ディスプレイ情報のセットアップ開始」の
出力はされましたので、恐らくファイルの更新がビルドに正しく反映されていないと思います
「リビルド」をした上で実行してみても「ディスプレイ情報のセットアップ開始」のログ出力が
されませんでしたら、お手数で申し訳ありませんが、より確実にファイルが更新されているかどうかを確認できるように
「設定されている画面設定」の出力の次の行に「バージョン確認出力」という出力を行うようにしたものを
アップしましたので、よろしければこちらを使用して再度お試しください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用
( 一応こちらも更新しました )
https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe
あと、DxLibVCTest.exe で使用している 7zip の自己解凍プログラムは解凍先のフォルダに既に同名のファイルが存在していると
正常に解凍が行われないことがありますので、既存のDXライブラリのファイルを削除するか、
別のフォルダに移動した上で解凍を行うようにしてみてください
あと、ビルドの際は普通のビルドではなく「リビルド」を使用して更新前のファイルの影響が無いようにしてみてください m(_ _)m
|
Re: DxLib_Init()でエラー? ( No.19 ) |
- 名前:Saucer 日時:2015/05/07 10:20
有難うございます。
確かに新しいDXライブラリのファイルを使っており、
普通のビルドではなくリビルドを使用しているのですが…
やはり「ディスプレイ情報のセットアップ開始」の出力は
されませんでした…
でも、「バージョン確認出力」は出力されました。
こちらがログの冒頭です。
0:設定されている画面設定 640x480 16bit color
0:バージョン確認出力
0:対応している画面モードなし
0:設定されている画面設定 640x480 32bit color
0:バージョン確認出力
0:システムの情報を出力します
0: DXライブラリ Ver3.14
0: 論理プロセッサの数 : 4
0: OS Windows8 ( Build 9200 )
117: 現時点のCPU動作速度:大体2.39GHz
117: MMX命令を使用します
118: SSE命令が使用可能です
119: SSE2命令が使用可能です
120: CPUベンダ:GenuineIntel
122: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
123:COMの初期化... 成功しました
また、初めてSetGraphModeをコメントアウトして実行した時、起動直後に「Access violation」の
エラーが発生しましたがその後、再び実行して見てもエラーが発生しません。
どういうことでしょう…
|
Re: DxLib_Init()でエラー? ( No.20 ) |
- 名前:管理人 日時:2015/05/07 12:43
お試しいただきありがとうございます
正しく最新版を使用されていたということで、失礼しました m(_ _;m
DXライブラリのプログラムを見直したみたところ、DxLib_Init の呼び出し前では
ログの出力が行われないようになっていました
なので、例えば ChangeWindowMode を呼ぶとログに「ChangeWindowMode実行」と
出力されるはずなのですが、DxLib_Init を呼び出す前に行った ChangeWindowMode に
ついてはログの出力がされていない状態になっていました
なので、何らかの理由で DxLib_Init の呼び出し前に「ディスプレイ情報のセットアップ開始」の
出力が行われようとしていて、しかし DxLib_Init 呼び出しの前だから何も Log.txt には
残っていないということなのだと思います
というわけで、DxLib_Init 以前でもログが出力されるようにプログラムを変更してみましたので、
本当に何度も申し訳ありませんが、よろしければこちらをお試しになってみてください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用
( 一応こちらも更新しました )
https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe
> また、初めてSetGraphModeをコメントアウトして実行した時、起動直後に「Access violation」の
> エラーが発生しましたがその後、再び実行して見てもエラーが発生しません。
メモリの不正なアクセスの場合、アクセスしている先が不正なメモリ領域かどうかは
完全には判断することができないので( アクセスした先がたまたまアプリの
他の処理で確保していたメモリ領域だった場合、デバッガは不正なアクセスか
どうかを判断することができない等 )、起動毎にエラーが発生したりしなかったり
ということは結構あります (・・;;
( 今回 Saucerさんが遭遇した「Access violation」エラーも同様のものかどうかは
直接ご確認できないので断言はできませんが・・・ )
|
Re: DxLib_Init()でエラー? ( No.21 ) |
- 名前:Saucer 日時:2015/05/07 13:14
本当にありがとうございます。
プログラミングに関してまだまだ分からないことがいっぱいで、
特にDirect3Dは(OpenGLも!)全く分からないので、ここまで丁寧に教えて頂き、
エラーの原因を探していただいておりますことを心より感謝申し上げます。
SetGraphModeをコメントアウトせずに実行した時のログの冒頭がこちらです↓
0:TestOutput 6
0:ディスプレイ情報のセットアップ開始
0: TestOutput 7
0: モニターの数:1 ディスプレイデバイスの数:3
0: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz
15:ディスプレイ情報のセットアップ完了
15:ChangeWindowMode実行
15:設定されている画面設定 1920x1080 32bit color
15:バージョン確認出力
15:TestOutput 0
15:TestOutput 1
15:システムの情報を出力します
15: DXライブラリ Ver3.14
15: 論理プロセッサの数 : 4
15: OS Windows8 ( Build 9200 )
130: 現時点のCPU動作速度:大体2.40GHz
130: MMX命令を使用します
131: SSE命令が使用可能です
132: SSE2命令が使用可能です
132: CPUベンダ:GenuineIntel
134: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
135:COMの初期化... 成功しました
143:メモリ総量:8087.27MB 空きメモリ領域:5560.54MB
143:タイマーの精度を検査します
144:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
144: パフォーマンスカウンターを使用します タイマー精度 : 2338.339000 KHz
145: ソフトの二重起動検査... 二重起動はされていませんでした
146:ウインドウクラスを登録します... 登録に成功しました
147:フルスクリーンモード用のウインドウを作成します
148:ウインドウの作成に成功しました
149:ウインドウを表示します
164:カーソルを不可視にしました
165:IMEを無効にしました
SetGraphModeをコメントアウトして(正常に)実行した時のログの冒頭がこちらです↓
0:TestOutput 6
0:ディスプレイ情報のセットアップ開始
0: TestOutput 7
0: モニターの数:1 ディスプレイデバイスの数:3
0: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz
15:ディスプレイ情報のセットアップ完了
15:ChangeWindowMode実行
15:設定されている画面設定 640x480 16bit color
15:バージョン確認出力
15:TestOutput 0
15:TestOutput 1
15:対応している画面モードなし
15:設定されている画面設定 640x480 32bit color
15:バージョン確認出力
15:TestOutput 0
15:TestOutput 1
15:システムの情報を出力します
15: DXライブラリ Ver3.14
15: 論理プロセッサの数 : 4
15: OS Windows8 ( Build 9200 )
130: 現時点のCPU動作速度:大体2.40GHz
131: MMX命令を使用します
132: SSE命令が使用可能です
132: SSE2命令が使用可能です
133: CPUベンダ:GenuineIntel
135: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
136:COMの初期化... 成功しました
145:メモリ総量:8087.27MB 空きメモリ領域:5546.54MB
145:タイマーの精度を検査します
146:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
147: パフォーマンスカウンターを使用します タイマー精度 : 2338.339000 KHz
148: ソフトの二重起動検査... 二重起動はされていませんでした
149:ウインドウクラスを登録します... 登録に成功しました
150:フルスクリーンモード用のウインドウを作成します
152:ウインドウの作成に成功しました
152:ウインドウを表示します
168:カーソルを不可視にしました
169:IMEを無効にしました
また、やはりコメントアウトして最初に実行した時にエラーが発生しました。
それ以来は実行してもエラーは発生しません…
|
Re: DxLib_Init()でエラー? ( No.22 ) |
- 名前:管理人 日時:2015/05/08 11:48
お試しいただきありがとうございます
ログを拝見する限りでは、私の予想は外れて正常にディスプレイの情報を取得できているようです・・・
となると、「Integer division by zero.」エラーの原因はディスプレイの情報が正常に取得できて
いなかったからでは無かったということに・・・
あ、でも現在は「Integer division by zero.」のエラーは発生していないのでしたね
ということは「Integer division by zero.」エラーが発生していた時点ではディスプレイの情報が
正常に取得できていなかったのかも・・・うーん、謎です・・・ (・・;;
気を取り直して No.15 で教えていただいた
> エラーはSetDrawScreenの中で発生しているらしく、ソースファイル内で
> 停止する箇所は「DxGraphicsD3D11.cpp」の行番号 5520だそうです。
>
> DX_D3D11_VS_CONST_BUFFER_BASE *ConstantVSBase = ( DX_D3D11_VS_CONST_BUFFER_BASE * )GD3D11.Device.Shader.Constant.ConstBuffer_VS_Base->SysmemBuffer ;
こちらのエラーが発生しないように手を加えてみたものを作成してみましたので、
よろしければお試しください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用
( 一応こちらも更新しました )
https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe
あと、可能でしたら「SetGraphModeをコメントアウトして最初に実行した時にエラー」が
発生した際のDXライブラリ内のソースファイルと行番号を教えていただけないでしょうか? m(・・;m
すみません、もうひとつ、ご確認なのですが現状発生しているのは
1.SetGraphModeをコメントアウトした後の最初の実行時に起動直後に発生するエラー
2.フルスクリーンモードで起動中に Alt+Tab を使用すると発生するエラー
の二つという認識で問題ないでしょうか?
|
Re: DxLib_Init()でエラー? ( No.23 ) |
- 名前:Saucer 日時:2015/05/08 14:07
> すみません、もうひとつ、ご確認なのですが現状発生しているのは
> 1.SetGraphModeをコメントアウトした後の最初の実行時に起動直後に発生するエラー
> 2.フルスクリーンモードで起動中に Alt+Tab を使用すると発生するエラー
> の二つという認識で問題ないでしょうか?
はい、その通りです。
(「Integer division by zero.」は 3.13fから 3.14に変えてからは一度も発生しておりません…)
新しいファイルを試させていただきました。
↑ 2.のエラーですが、普通にエラー無しでAlt+Tab使用可能になったようです!
次に、 1.のエラー。新しいライブラリファイルでは発生しなくなりました…
その代わり、少しおかしな現象が起きました。
実行後、ウインドウのフォーカスが実行プログラムから他のプログラムに移りました。
これもエラーと同様、最初に実行した時にしか起こらず、その後プログラムを実行しても
再現できませんでした…
また、No.20のファイルも再び試してみましたが、エラーは発生しませんでした…
No.21の時点で停止箇所を調べておくべきでしたが、すぐ再実行してしまい
エラーを発生させられなくなったので、調べ損ねてしまったのです。
申し訳ございません…
追記
「更新」ってことは、もしかしてNo.20も最新のファイルですか?
同じファイルを2回試しただけでしたね… すみません…
ところで、Log.txtで「ディスプレイ情報のセットアップ開始」の所はウインドウモードだと
出力されないようなのですが、そういう仕様なのでしょうか。
|
Re: DxLib_Init()でエラー? ( No.24 ) |
- 名前:管理人 日時:2015/05/08 18:04
お試しいただきありがとうございます
> 実行後、ウインドウのフォーカスが実行プログラムから他のプログラムに移りました。
> これもエラーと同様、最初に実行した時にしか起こらず、その後プログラムを実行しても
> 再現できませんでした…
もしかしたら SaucerさんのPCにインストールされているセキュリティソフトなどが
プログラムの実行に反応しているのかもしれません
( 同じプログラムが一度だけチェックするから、二度目は現象が発生しない等 )
ともあれ、今回のバージョンで、少しおかしな挙動をするとはいえ、エラーは無くなったという事ですね (・・;;
> 「更新」ってことは、もしかしてNo.20も最新のファイルですか?
> 同じファイルを2回試しただけでしたね… すみません…
すみません、同じファイル名で上書きしてしまっています
恐らくエラーが発生しなくなった原因と思われる Alt+Tab 時のエラーが発生しなくなるように
するために行った変更を、変更前に戻してみました( エラーが発生するようにした )ので、
よろしければこれでお試しいただけないでしょうか? m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe
> ところで、Log.txtで「ディスプレイ情報のセットアップ開始」の所はウインドウモードだと
> 出力されないようなのですが、そういう仕様なのでしょうか。
はい、仕様です
フルスクリーンモードの場合や、GetDisplayMode 関数などのディスプレイの情報が必要になった際に
ディスプレイ情報のセットアップを行っていますので、ウインドウモードの場合は GetDisplayMode などの
関数を使用しない限りは件のログは出力されません
|
Re: DxLib_Init()でエラー? ( No.25 ) |
- 名前:Saucer 日時:2015/05/09 12:56
エラーが発生しました!
エラーの種類は「0xC0000005: Access violation reading location 0x00000008.」です。
前と同様 SetDrawScreenの中で発生し、停止箇所は「DxGraphicsD3D11.cpp」の5520行目でした。
いろいろ試してみたのですが、エラーの発生になにやら「コンピューターが起動されてから
一度目の実行であるか」という条件も関係しているっぽいです。
でも、確実に発生させることは未だにできていないので、正確な発生条件は突き止めておりません…
申し訳ございません。
|
Re: DxLib_Init()でエラー? ( No.26 ) |
- 名前:管理人 日時:2015/05/09 21:36
お試しいただきありがとうございます!
エラーの発生した箇所は No.22 のバージョンでエラーが発生しないように手を加えた箇所なので、
No.22 のバージョンで No.19 でご報告いただいた
> また、初めてSetGraphModeをコメントアウトして実行した時、起動直後に「Access violation」の
> エラーが発生しましたがその後、再び実行して見てもエラーが発生しません。
こちらのエラーが発生しなくなった原因が No.22 で行った変更によるものだと確認できました
No.22 のバージョンでも最初の実行時にウインドウのフォーカスが他のプログラムに移ってしまうという
現象と、なぜ「Integer division by zero.」のエラーが発生しなくなったのか不明という点はありますが、
とりあえずエラー終了することが無くなったので、本件は解決にしようと思うのですが宜しいでしょうか? m(・・;m
|
Re: DxLib_Init()でエラー? ( No.27 ) |
- 名前:Saucer (解決) 日時:2015/05/10 03:19
はい!何日間もエラー解決にご尽力くださり、誠に有難うございます!
> No.22 のバージョンでも最初の実行時にウインドウのフォーカスが他のプログラムに移ってしまうという現象と、
> なぜ「Integer division by zero.」のエラーが発生しなくなったのか不明という点はありますが
まだスッキリしないところもありますが、エラーが発生しなくなったのでひとまず安心です。
もしエラーが再発することがあれば、またこのスレッドにレスしようと思います。
これからもDXライブラリを有難く使わせていただきます!
|
Re: DxLib_Init()でエラー? ( No.28 ) |
- 名前:管理人 日時:2015/05/10 04:44
ご返答ありがとうございます
すみません、No.22 のバージョンに本件以外の以下の二つのバグが見つかりました orz
・ゲームパッドが使用できない
・XAudio を使用した 3Dサウンド機能が正常に動作しない
修正版をアップしましたので、申し訳ありませんがこちらをお使いください
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用
最後の最後までお手数をお掛けしてすみません m(_ _;m
|
Re: DxLib_Init()でエラー? ( No.29 ) |
- 名前:Saucer (解決) 日時:2015/05/10 07:13
ありがとうございます。
次の公開バージョンではこれら全ての修正が取り入れられることを期待しております!
実は私もゲームパッドがおかしいと思っていたのですが今回あまりにも
お世話になってしまったので報告は少し待ってからにしようと思ったのです (^ ^
|