トップページ > 記事閲覧
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.1 )
名前:Tir 日時:2015/04/28 22:24

フルスクリーンで起動してますか? DxLib_Init()の前に ChangeWindowMode( false ); を記述してみて下さい
メンテ
Re: DxLib_Init()でエラー? ( No.2 )
名前:Saucer 日時:2015/04/29 21:19

はい、フルスクリーンで起動してエラーが発生したのです。 ウィンドウモードで起動するオプションも欲しいです。
メンテ
Re: DxLib_Init()でエラー? ( No.3 )
名前:管理人 日時:2015/04/29 23:28

> @新バージョン3.13fのファイルを旧バージョン3.13d > と入れ替えてみましたが、開発中のゲームが正常に動作しなくなりました。 0除算エラーが発生しているようです・・・ よろしければプログラムを実行すると作成される Log.txt の内容をこちらの掲示板に 貼り付けて頂けないでしょうか? m(_ _;m ( Integer division by zero. のエラーが発生した際のものを・・・ ) > Aエラーの原因がDirect3D 11関係かなと思い、SetUseDirect3D11関数を > 使ってみたかったのですが、なにやら同じ名前の関数が二つあるらしく、 > コンパイルする以前からエラーが表示されます。 SetUseDirect3D11 は一つしかありませんので謎です・・・ よろしければコンパイルする以前から表示されたというエラーの内容を こちらに貼り付けていただけないでしょうか? > Bなぜ3.13dではなく3.13bに戻したかというと、 > ダウンロードページに無いからです。ページが少しおかしいようです。 すみません、旧バージョン置き場の最新バージョンが 3.13e になっていました 3.13e から 3.13d に修正しておきました m(_ _;m > ウィンドウモードで起動するオプションも欲しいです。 DxLib_Init を呼び出す前の箇所に ChangeWindowMode( TRUE ) ; という記述を追加するとウインドウモードで起動しますので、よろしければお使いください
メンテ
Re: DxLib_Init()でエラー? ( No.4 )
名前:Tir 日時:2015/04/30 00:06

これは僕もなったのですが いままでChangeWindowMode関数を使わずに 起動するとフルスクリーンになったのですが 最新バージョンではDxLib_Initの前にChangeWindowMode関数を使用しないとエラーが発生するみたいです
メンテ
Re: DxLib_Init()でエラー? ( No.5 )
名前:Saucer 日時:2015/04/30 06:00

有難うございます。 > ウィンドウモードで起動するオプションも欲しいです。 ChangeWindowModeは使ってます。 フルスクリーンで起動したときは正常に動作し、ウインドウモードではエラーが 発生する仕様だと困る、という意味でした… 分かり難くてすみません。 @Log.txtの内容はこちらです。 0:設定されている画面設定 640x480 16bit color 15:対応している画面モードなし 15:設定されている画面設定 640x480 32bit color 15:対応している画面モードなし 15:システムの情報を出力します 15: DXライブラリ Ver3.13f 15: 論理プロセッサの数 : 4 15: OS Windows8 ( Build 9200 ) 123: 現時点のCPU動作速度:大体2.39GHz 123: MMX命令を使用します 125: SSE命令が使用可能です 125: SSE2命令が使用可能です 126: CPUベンダ:GenuineIntel 127: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz 128:COMの初期化... 成功しました 137:メモリ総量:8087.27MB 空きメモリ領域:5517.09MB 137:タイマーの精度を検査します 138:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 138: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz 139: ソフトの二重起動検査... 二重起動はされていませんでした 140:ウインドウクラスを登録します... 登録に成功しました 141:フルスクリーンモード用のウインドウを作成します 143:ウインドウの作成に成功しました 143:ウインドウを表示します 154:カーソルを不可視にしました 155:IMEを無効にしました 183:DirectInput関係初期化処理 183: XInput DLL の読み込み中... 成功 186: DirectInput7 の取得中... 成功 311: 引き続き初期化処理... 初期化成功 Aエラーを発生させようとしたのですが、今度はSetUseDirect3D11という 関数は存在しない、と言われました… Bありがとうございます。やはり3.13dですと正常に動作します。 一応3.13dの場合のLog.txtも貼り付けさせて頂きます。 0:設定されている画面設定 1920x1080 32bit color 15:システムの情報を出力します 15: DXライブラリ Ver3.13d 15: 論理プロセッサの数 : 4 15: OS Windows8 ( Build 9200 ) 121: 現時点のCPU動作速度:大体2.40GHz 121: MMX命令を使用します 122: SSE命令が使用可能です 123: SSE2命令が使用可能です 123: CPUベンダ:GenuineIntel 125: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz 126:COMの初期化... 成功しました 133:メモリ総量:8087.27MB 空きメモリ領域:5349.47MB 134:タイマーの精度を検査します 134:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 135: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz 136: ソフトの二重起動検査... 二重起動はされていませんでした 137:ウインドウクラスを登録します... 登録に成功しました 138:フルスクリーンモード用のウインドウを作成します 140:ウインドウの作成に成功しました 140:ウインドウを表示します 155:カーソルを不可視にしました 156:IMEを無効にしました 181:DirectInput関係初期化処理 182: XInput DLL の読み込み中... 成功 185: DirectInput7 の取得中... 成功 317: 引き続き初期化処理... 初期化成功 322: ジョイパッドの初期化... 348: ジョイパッドの初期化は正常に終了しました 350: マウスデバイスの初期化... 初期化成功 355: キーボードデバイスの初期化... 初期化成功 363:DirectInput 関連の初期化は正常に終了しました 369:DirectSound の初期化を行います 370:DirectSound インターフェースの取得を行います.... 成功 379:引き続きインターフェースの初期化処理... 成功 466: DirectSound デバイスを列挙します 470: モジュール名: ドライバ記述:Primary Sound Driver 471: モジュール名:{0.0.0.00000000}.{8422ffc6-71c7-4dc5-8283-4088263566e2} ドライバ記述:Speakers (Realtek High Definition Audio) 473: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 474: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 475: 利用可能サンプリング精度 477: プライマリ 16bit = OK 8bit = OK 479: セカンダリ 16bit = OK 8bit = OK 480: 利用可能チャンネル 481: プライマリ MONO = OK STEREO = OK 482: セカンダリ MONO = OK STEREO = OK 484:DirectSound の初期化は正常に終了しました 495:DirectDraw オブジェクトの取得を行います.... 成功 504:引き続き初期化処理... 初期化に成功しました 527:IDirect3D9Ex オブジェクトを取得します.... 成功 533:画面解像度を 1920 x 1080 リフレッシュレートを 60Hz に変更します 534:Desktop Window Manager を無効にしました 535:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 847:成功 849:Driver:igdumdim32.dll Description:Intel(R) HD Graphics Family 850:画面のフォーマットは D3DFMT_X8R8G8B8 です 851:16bit Zバッファフォーマットは D3DFMT_D16 です 852:24bit Zバッファフォーマットは D3DFMT_D24X8 です 852:32bit Zバッファフォーマットは D3DFMT_D24X8 です 853:16bit カラーフォーマットは D3DFMT_R5G6B5 です 854:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 855:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 856:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 857:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 858:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 859:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 860:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 861:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 862:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 863:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 864:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 865:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 866:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 867:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 868:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 869:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 870:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_L8 です 871:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_L16 です 872:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 873:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 874:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 875:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 876:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 877:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 878:一度に描画できるプリミティブの最大数:8388607 879:対応している最大頂点インデックス:16777215 880:同時にレンダリングできるバッファの数:4 881:最大テクスチャサイズ 幅:8192 高さ:8192 882:テクスチャステージテンポラリレジスタ:使用可 883:減算合成のハードウェア対応:ネイティブ 884:ハードウェア頂点シェーダーバージョンコード:300 885:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 886:ピクセルシェーダーバージョンコード:300 920:バックバッファロック転送の時間:2157nsec 一時的な描画可能バッファを使用した転送の時間:1578nsec 921:バックバッファロックを使用しません 922:Zバッファを作成します.... 成功 1569:プログラマブルシェーダーを使用します 1643:フォントの初期化を行います 1646:フォントの初期化は正常に終了しました 1647:文字コードバッファの初期化を行います... 完了しました 8429:フォントの初期化を行います 8433:フォントの初期化は正常に終了しました 8538:Direct3DDevice9 の解放 2 8684:d3d9.dll の解放 1 8690:DirectInput 関連の終了処理... 完了 8719:DirectSound の終了処理は正常に終了しました 8722:ウインドウを閉じようとしています 8770:ウインドウが破棄されようとしています 8773:ソフトを終了する準備が整いました 8914: 8915:Alloc memory dump 8916: Total size:0(0.000kb) Alloc num:0 8916:
メンテ
Re: DxLib_Init()でエラー? ( No.6 )
名前:管理人 日時:2015/05/01 17:07

ご返答ありがとうございます > @Log.txtの内容はこちらです。 ありがとうございます、「ジョイパッドの初期化」と続くべきところの前で止まっているようですね・・・ ところで、フルスクリーンで起動したときは正常に動作するとのことですが、こちらの Log.txt は フルスクリーンモードで起動したときのものでしょうか?( フルスクリーンモードで起動したときのみ 出力されるログがあるので・・・ ) > Aエラーを発生させようとしたのですが、今度はSetUseDirect3D11という > 関数は存在しない、と言われました… 恐らく古い DxLib.h がインクルードされてしまっているのだと思います バージョン 3.13f の DxLib.h の他に、古い DxLib.h がどこかにあって それがインクルードされてしまっていると思いますので、インクルードフォルダを確認してみてください > Tirさん フルスクリーンモードで起動する場合も明示的に ChangeWindowMode( FALSE ) ; を実行しなければならない、ということでしょうか?
メンテ
Re: DxLib_Init()でエラー? ( No.7 )
名前:Tir 日時:2015/05/01 22:06

はい、僕の場合は起動時にウィンドウとフルスクリーンを選べるダイアログを入れていて ウィンドウモードでは正常に起動したのにフルスクリーンだとDxLib_Init()でエラーが発生したので ChangeWindowMode( FALSE ) ;を追加したところ正常に起動した次第です エラー内容も 0xC0000094: Integer division by zero で同じでした
メンテ
Re: DxLib_Init()でエラー? ( No.8 )
名前:Saucer 日時:2015/05/02 10:30

説明不足、そして調査不足ですみません。弁明させていただきます。 @張り付けたLog.txtはフルスクリーンで起動したときのものです。 フルスクリーンでエラーが発生したのです。 しかし、再確認しましたところ、ウインドウモードでは正常に動作します。 また、ChangeWindowModeでいろいろ試してみましたが、 何やらTRUEを渡して一度関数を呼んだ後にFALSEを渡して再び呼ぶと、 エラーが発生せず正常にフルスクリーンで動作します。 その逆の、FALSEを渡して呼んでからTRUEを渡して呼んだ場合も、 正常にウインドウモードで動作します。 つまり、ChangeWindowMode(TRUE)を最低1回呼ばないと エラーが発生する、ということらしいです。 もちろん、3.13dではウインドウ(TRUE)の場合でもフルスクリーン(FALSE)の場合でも、 一度呼んだだけで正常に動作しました。 A >恐らく古い DxLib.h がインクルードされてしまっているのだと思います 古いファイルをすべて削除してから新しいファイルを使っていたので ファイルが原因ではないと思うのですが、再び試して見たら 今度は何のエラーもなく普通にSetUseDirect3D11が使えました… Clean Solutionができていなかったのでしょうか… お騒がせして申し訳ございません。 最後に、ウインドウモードでは何の問題もなく動作しますので、フルスクリーンの場合と比較のため ウインドウモードの時のLog.txtを貼り付けさせて頂きます。 ところで、私は英語のPCを使っており、3.13dまではLog.txtをNotepadで開けると文字化け してたのですが、今回の3.13fのLog.txtは文字化けしません。何か仕様が変わったのですか? 0:システムの情報を出力します 0: DXライブラリ Ver3.13f 15: 論理プロセッサの数 : 4 15: OS Windows8 ( Build 9200 ) 118: 現時点のCPU動作速度:大体2.40GHz 119: MMX命令を使用します 120: SSE命令が使用可能です 121: SSE2命令が使用可能です 122: CPUベンダ:GenuineIntel 124: CPU名:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz 124:COMの初期化... 成功しました 134:メモリ総量:8087.27MB 空きメモリ領域:5365.82MB 135:タイマーの精度を検査します 135:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 136: パフォーマンスカウンターを使用します タイマー精度 : 2338.338000 KHz 137: ソフトの二重起動検査... 二重起動はされていませんでした 138:ウインドウクラスを登録します... 登録に成功しました 140:ウインドウモード起動用のウインドウを作成します 157:ウインドウの作成に成功しました 157:ウインドウを表示します 175:IMEを無効にしました 175:ウインドウスタイルをウインドウモード用に変更します... 完了 204:DirectInput関係初期化処理 204: XInput DLL の読み込み中... 成功 207: DirectInput7 の取得中... 成功 322: 引き続き初期化処理... 初期化成功 323: ジョイパッドの初期化... 330: ジョイパッドの初期化は正常に終了しました 331: マウスデバイスの初期化... 初期化成功 332: キーボードデバイスの初期化... 初期化成功 333:DirectInput 関連の初期化は正常に終了しました 335:DirectSound の初期化を行います 336:DirectSound インターフェースの取得を行います.... 成功 341:引き続きインターフェースの初期化処理... 成功 431: DirectSound デバイスを列挙します 433: Module Name : Description : Primary Sound Driver 433: Module Name : {0.0.0.00000000}.{8422ffc6-71c7-4dc5-8283-4088263566e2} Description : Speakers (Realtek High Definition Audio) 434: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 435: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 436: 利用可能サンプリング精度 437: Primary 16bit = OK 8bit = OK 437: Secondary 16bit = OK 8bit = OK 438: 利用可能チャンネル 439: Primary MONO = OK STEREO = OK 439: Secondary MONO = OK STEREO = OK 440:DirectSound の初期化は正常に終了しました 441:d3d11.dll の読み込み.... 成功 446:dxgi.dll の読み込み.... 成功 447:API CreateDXGIFactory のアドレスを取得します.... 成功 448:IDXGIFactory を作成します.... 成功 450:API D3D11CreateDevice のアドレスを取得します.... 成功 450:IDXGIAdapter を取得します.... 成功 451:Direct3D 11 FeatureLevel 11_0 以上を対象とします 452:ID3D11Device オブジェクトを取得します.... 成功 468:IDXGIDevice1 を取得します.... 成功 469:IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 469:[ウインドウモード] IDXGISwapChain を作成します.... 成功 471:IDXGIOutput を取得します.... 成功 471:スワップチェインのバッファの ID3D11Texture2D を取得します.... 成功 472:スワップチェインのバッファの ID3D11ShaderResourceView を作成します.... 成功 473:スワップチェインのバッファの ID3D11RenderTargetView を作成します.... 成功 474:Graphics Device:Intel(R) HD Graphics Family 474:画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 475:16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 475:24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 475:32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 476:カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 476:DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 477:DXT2テクスチャフォーマットは使えません 477:DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 478:DXT4テクスチャフォーマットは使えません 478:DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 479:描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 479:描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 479:描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 480:描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 480:描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 481:描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 481:描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 482:描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 482:描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 482:描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 483:描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 483:描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 484:描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 484:描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 485:使用する機能レベル:D3D_FEATURE_LEVEL_11_1 485:同時にレンダリングできるバッファの数:8 485:最大テクスチャサイズ 幅:16384 高さ:16384 486:深度バッファを作成します.... 成功 539:シェーダーコード関係の初期化.... 成功 602:各種シェーダー用定数バッファの作成.... 成功 603:各種 ID3D11InputLayout の作成.... 成功 605:標準描画用の頂点バッファの作成.... 成功 744:画像の単純転送処理の初期化... 成功 749:フォントの初期化を行います 751:フォントの初期化は正常に終了しました 752:文字コードバッファの初期化を行います... 完了しました 4819:フォントの初期化を行います 4822:フォントの初期化は正常に終了しました 4869:d3d11.dll の解放 1 4870:dxgi.dll の解放 1 4871:Direct3D11 のオブジェクト数を出力 4872:Direct3D11 のオブジェクト合計数 : 0 4873:DirectInput 関連の終了処理... 完了 4889:DirectSound の終了処理は正常に終了しました 4890:ウインドウを閉じようとしています 4903:ウインドウが破棄されようとしています 4904:ソフトを終了する準備が整いました 4972: 4972:Alloc memory dump 4973: Total size:0(0.000kb) Alloc num:0 4974:
メンテ
Re: DxLib_Init()でエラー? ( No.9 )
名前:管理人 日時:2015/05/03 19:04

ご返答ありがとうございます なるほど、Tirさんも仰られている通り ChangeWindowMode( FALSE ) ; を呼ばないと フルスクリーンモードで正常に起動できないのですね・・・ No.5 のログを拝見する限りではDXライブラリのデフォルト解像度である 640x480 に対応していない という点が私の手元の環境と異なるので、641x481 という手元の環境でも対応していない解像度を デフォルト解像度として実行して再現を試みたのですが、特に何のエラーも発生しませんでした (- -;; お手数で申し訳ないのですが、もし Visual Studio をお使いでしたら、こちらの DXライブラリのソースごとビルドを実行するプロジェクトをデバッグ実行して、 エラーで停止した箇所のソースファイル名と行番号を教えていただけないでしょうか? m(_ _;m https://dxlib.xsrv.jp/temp/DxLibSourceTest.exe ( 自己解凍形式で、中に Visual Studio 2010用と Visual Studio 2012用の sln ファイルが入っています ) 尚、プロジェクトで実行するプログラムは以下の通りです #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; DrawString( 0, 0, "何かキーを押すと終了します", GetColor( 255,255,255 ) ) ; WaitKey() ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
メンテ

Page: 1 | 2 |

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

   クッキー保存