トップページ > 過去ログ > 記事閲覧
DxLib_Init() から出てこない
名前:SAKI 日時: 2013/03/16 19:42

DXライブラリをVer3.08eにアップデートしたところ DxLib_Init() から出てこなくなり続きが実行されずフリーズします。 最初の方のソースコードです。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { FILE *f; f = fopen("TEST.txt", "a"); fprintf(f, "OK 1\n"); fclose(f); SetAlwaysRunFlag( TRUE ); ChangeWindowMode( TRUE ); f = fopen("TEST.txt", "a"); fprintf(f, "OK 2\n"); fclose(f); if( DxLib_Init() == -1 ) { f = fopen("TEST.txt", "a"); fprintf(f, "エラー\n"); fclose(f); return -1; } f = fopen("TEST.txt", "a"); fprintf(f, "OK 3\n"); fclose(f); 拙いコードですが・・・ ログ・ファイルです。 0:システムの情報を出力します 0: DXライブラリ Ver3.08e 0: 論理プロセッサの数 : 4 3: OS Windows7 ( Build 7601 Service Pack 1 ) 103: CPU動作速度:大体2.37GHz 103: MMX命令を使用します 103: SSE命令が使用可能です 104: SSE2命令が使用可能です 104: CPUベンダ:GenuineIntel 106: CPU名:Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz 106:COMの初期化... 成功しました 107:メモリ総量:8181.86MB 空きメモリ領域:5618.30MB 111:タイマーの精度を検査します 112:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 112: パフォーマンスカウンターを使用します タイマー精度 : 2338.193000 KHz 112: ソフトの二重起動検査... 二重起動はされていませんでした 114:ウインドウクラスを登録します... 登録に成功しました 115:ウインドウモード起動用のウインドウを作成します 136:ウインドウの作成に成功しました 137:ウインドウを表示します 153:IMEを無効にしました 157:ウインドウスタイルをウインドウモード用に変更します... 完了 178:DirectInput関係初期化処理 178: DirectInput7 の取得中... 成功 209: 引き続き初期化処理... 初期化成功 211: ジョイパッドの初期化... 246: ジョイパッドの初期化は正常に終了しました 247: マウスデバイスの初期化... 初期化成功 247: キーボードデバイスの初期化... 初期化成功 249:DirectInput 関連の初期化は正常に終了しました 250:DirectSound の初期化を行います 250:DirectSound インターフェースの取得を行います.... 成功 252:引き続きインターフェースの初期化処理... 成功 348: DirectSound デバイスを列挙します 349: モジュール名: ドライバ記述:プライマリ サウンド ドライバー 349: モジュール名:{0.0.0.00000000}.{90743386-a48b-4fdf-a8ab-b93e1bd5e2cd} ドライバ記述:スピーカー (Avnex Virtual Audio Device) 350: モジュール名:{0.0.0.00000000}.{3dfd6fca-b0b2-4a04-83cd-cc19f6c105b4} ドライバ記述:E2341-1 (NVIDIA High Definition Audio) 350: モジュール名:{0.0.0.00000000}.{cea59cd2-2ece-4cdb-b092-815bb11d4f85} ドライバ記述:スピーカー (Realtek High Definition Audio) 350: モジュール名:{0.0.0.00000000}.{e0b2a9eb-1ae1-4f96-acac-ae7afff993e7} ドライバ記述:スピーカー (2- USB Audio) 351: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 351: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 351: 利用可能サンプリング精度 351: プライマリ 16bit = OK 8bit = OK 352: セカンダリ 16bit = OK 8bit = OK 352: 利用可能チャンネル 352: プライマリ MONO = OK STEREO = OK 353: セカンダリ MONO = OK STEREO = OK 353:DirectSound の初期化は正常に終了しました 357:DirectDraw オブジェクトの取得を行います.... 成功 361:引き続き初期化処理... 初期化に成功しました TEST.txtの中身 OK 1 OK 2 どうぞよろしくお願いします。 追伸 ver3.10bにアップデートしても同じ結果でした。 0:システムの情報を出力します 0: DXライブラリ Ver3.10b 0: 論理プロセッサの数 : 4 0: OS Windows7 ( Build 7601 Service Pack 1 ) 100: CPU動作速度:大体2.30GHz 100: MMX命令を使用します 101: SSE命令が使用可能です 101: SSE2命令が使用可能です 101: CPUベンダ:GenuineIntel 103: CPU名:Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz 103:COMの初期化... 成功しました 104:メモリ総量:8181.86MB 空きメモリ領域:5519.71MB 106:タイマーの精度を検査します 106:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 107: パフォーマンスカウンターを使用します タイマー精度 : 2338.193000 KHz 107: ソフトの二重起動検査... 二重起動はされていませんでした 108:ウインドウクラスを登録します... 登録に成功しました 109:ウインドウモード起動用のウインドウを作成します 162:ウインドウの作成に成功しました 162:ウインドウを表示します 178:IMEを無効にしました 181:ウインドウスタイルをウインドウモード用に変更します... 完了 202:DirectInput関係初期化処理 202: XInput DLL の読み込み中... 成功 205: DirectInput7 の取得中... 成功 247: 引き続き初期化処理... 初期化成功 260: ジョイパッドの初期化... 297: ジョイパッドの初期化は正常に終了しました 298: マウスデバイスの初期化... 初期化成功 298: キーボードデバイスの初期化... 初期化成功 300:DirectInput 関連の初期化は正常に終了しました 301:XAudio2 の初期化を行います 301: XAudio2 インターフェースの取得を行います.... 成功 Ver2.7 303: 引き続きインターフェースの初期化処理... 成功 304: X3DAudio.DLL の読み込み中... 成功 357: デバイス名:スピーカー (Avnex Virtual Audio Device) 357: チャンネル数:2 358: ビット精度:16bit 358: サンプリングレート:48000Hz 358:XAudio2 の初期化は正常に終了しました 363:DirectDraw オブジェクトの取得を行います.... 成功 367:引き続き初期化処理... 初期化に成功しました DirectXは最新版にアップデート済みです。

Page: 1 |

Re: DxLib_Init() から出てこない ( No.1 )
名前:だんごさん 日時:2013/03/16 19:49

DxLib_Init()を実行したらなら、 プログラムの最後にDxLib_End()を追加してください。 またファイル操作をするなら#include <stdio.h>を追加してください。 たとえ動いてもバグの原因にもなりますし、不具合の原因です。
Re: DxLib_Init() から出てこない ( No.2 )
名前:SAKI 日時:2013/03/16 20:16

一応最後までソースを追加して実行したところ動きました。 途中で打ちミスをしていました。 ただ初期化前に SetScreenMemToVramFlag( FALSE ) ; を実行するとまた動かなくなってしまいました。 試しにSetScreenMemToVramFlagのサンプルコードを実行したところ同じ結果になりました。 どうしてでしょうか?
Re: DxLib_Init() から出てこない ( No.3 )
名前:だんごさん 日時:2013/03/16 20:24

SetScreenMemToVramFlagの代わりに、 SetUseSoftwareRenderModeFlagを使用してみてください。
Re: DxLib_Init() から出てこない ( No.4 )
名前:SAKI_解決 日時:2013/03/16 20:41

無事動きました。 ありがとうございます。

Page: 1 |