トップページ > 記事閲覧
DxLib_Init()でエラー?
名前:Saucer 日時: 2015/04/28 14:26

いつもDXライブラリにお世話になっております。 @新バージョン3.13fのファイルを旧バージョン3.13d と入れ替えてみましたが、開発中のゲームが正常に動作しなくなりました。 旧バージョン3.13bに戻すと、ゲームは正常に動作します。 以下のソースの、DxLib_Init()の所でエラーが発生しているそうです。 エラー種は「Integer division by zero.」だそうです。 if(DxLib_Init() == -1) { throw std::exception("DxLib failed to initialize"); } Aエラーの原因がDirect3D 11関係かなと思い、SetUseDirect3D11関数を 使ってみたかったのですが、なにやら同じ名前の関数が二つあるらしく、 コンパイルする以前からエラーが表示されます。 Bなぜ3.13dではなく3.13bに戻したかというと、 ダウンロードページに無いからです。ページが少しおかしいようです。 前公式公開バージョンの3.13dが無く、代わりに3.13eと書いてあります。 しかし、リンク先では404 Not Foundというエラーが発生します。 どうかご指導お願い致します。
メンテ

Page: 1 | 2 |

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

ありがとうございます。 次の公開バージョンではこれら全ての修正が取り入れられることを期待しております! 実は私もゲームパッドがおかしいと思っていたのですが今回あまりにも お世話になってしまったので報告は少し待ってからにしようと思ったのです (^ ^
メンテ

Page: 1 | 2 |

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

   クッキー保存