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 ;
}
|