トップページ > 記事閲覧
フリーズします
名前:Kaka@Ehime 日時: 2017/12/24 16:07

初心者です。 テスト用プログラムをサイトよりいただきました。 #include <DxLib.h> // プログラムは WinMain から始まります int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetEnableXAudioFlag(FALSE); if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } DrawPixel(320, 240, GetColor(255, 255, 255)); // 点を打つ WaitKey(); // キー入力待ち DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 } デバッグすると以下のようなメッセージが出力されて一定時間フリーズします。 test.exe' (Win32): 'E:\Library\Documents\Visual Studio 2017\Z_App_DXlib_VC\test\Debug\test.exe' が読み込まれました。シンボルが読み込まれました。 'test.exe' (Win32): 'C:\Windows\System32\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'test.exe' (Win32): 'C:\Windows\System32\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'test.exe' (Win32): 'C:\Windows\System32\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'test.exe' (Win32): 'C:\Windows\System32\vcruntime140.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。    ・    ・    ・ スレッド 0x2088 はコード 0 (0x0) で終了しました。 スレッド 0x20f4 はコード 0 (0x0) で終了しました。 プログラム '[10028] test.exe' はコード 0 (0x0) で終了しました。 過去ログも見ましたが、直りませんでした。 ご教示お願いできますでしょうか。 宜しくお願い申し上げます。 <追伸> 当方、Windows 7 Home 32Bit SP1です。
メンテ

Page: 1 |

Re: フリーズします ( No.1 )
名前:管理人 日時:2017/12/25 00:14

これまでもデバッグ実行の際に特定の処理で数秒〜数十秒フリーズする、という現象に遭遇したり、 ご報告をいただいたりしたことがありますが、環境に依存した現象であることが多く、 DXライブラリ側では特に対処をすることができずに終わることが多いです ( Windowsアップデートやドライバのアップデートやセキュリティソフトを無効化するなどで  現象が発生しなくなったりします ) ただ、どのような箇所でフリーズしているかがわかれば回避する方法が見つかるかもしれませんので、 よろしければプログラムを実行した際に作成される Log.txt の中身をまるごとこちらの掲示板に コピー&貼り付けしていただけないでしょうか? m(_ _)m
メンテ
Re: フリーズします ( No.2 )
名前:Kaka@Ehime 日時:2017/12/27 19:38

管理人様 返信が遅れて申し訳ありません。 早速のご回答ありがとうございます。 以下にLog.txtの中身を記載します。 宜しくお願い申し上げます。 0:DXライブラリの初期化処理開始 8: 設定されている画面設定 640x480 16bit color 14: ディスプレイ情報のセットアップ開始 18: モニターの数:2 ディスプレイデバイスの数:5 25: No.0 モニター名:\\.\DISPLAY1 1440x900 32bit 60Hz 29: No.1 モニター名:\\.\DISPLAY2 1440x900 32bit 60Hz 193: ディスプレイ情報のセットアップ完了 196: システムの情報を出力します 199: DXライブラリ Ver3.19 202: 論理プロセッサの数 : 4 205: OS Windows7 ( Build 7601 Service Pack 1 ) 311: 現時点のCPU動作速度:大体2.66GHz 313: MMX命令を使用します 316: SSE命令が使用可能です 318: SSE2命令が使用可能です 320: CPUベンダ:GenuineIntel 332: CPU名:Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz 334: COMの初期化... 成功 360: 非同期読み込み処理の初期化...成功 365: ファイルアクセス処理の初期化...成功 369: メモリ総量:3327.05MB 空きメモリ領域:810.15MB 372: タイマーの精度を検査します 374: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 377: パフォーマンスカウンターを使用します タイマー精度 : 2603.906000 KHz 382: ソフトの二重起動検査... 二重起動はされていませんでした 389: ウインドウクラスを登録します... 登録に成功しました 394: フルスクリーンモード用のウインドウを作成します 459: ウインドウの作成に成功しました 461: ウインドウを表示します 636: カーソルを不可視にしました 645: IMEを無効にしました 854: DirectInput関係初期化処理 856: XInput DLL の読み込み中... 成功 908: DirectInput7 の取得中... DirectInput8 の取得を試みます...成功 1302: 引き続き初期化処理... 初期化成功 1330: ジョイパッドの初期化... 1387: ジョイパッドの初期化は正常に終了しました 1390: マウスデバイスの初期化... 初期化成功 1395: キーボードデバイスの初期化... 初期化成功 1406: DirectInput 関連の初期化は正常に終了しました 1421: DirectSound の初期化を行います 1424: DirectSound インターフェースの取得を行います.... 成功 1448: 引き続きインターフェースの初期化処理... 成功 1635: DirectSound デバイスを列挙します 1639: Module Name : Description : プライマリ サウンド ドライバー 1641: Module Name : {0.0.0.00000000}.{16ec0441-4040-4b0b-be0b-26e5db9a5793} Description : スピーカー (VIA High Definition Audio) 1643: Module Name : {0.0.0.00000000}.{a7d05419-012e-427f-8af3-e3d5406edb28} Description : SPDIF Interface (TX1) (VIA High Definition Audio) 1645: Module Name : {0.0.0.00000000}.{bc0ba18f-ac67-491f-b350-1df98793a8a9} Description : Digital Output Device (HDMI TX0) (VIA High Definition Audio) 1647: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 1649: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 1651: 利用可能サンプリング精度 1653: Primary 16bit = OK 8bit = OK 1655: Secondary 16bit = OK 8bit = OK 1658: 利用可能チャンネル 1660: Primary MONO = OK STEREO = OK 1662: Secondary MONO = OK STEREO = OK 1667: DirectSound の初期化は正常に終了しました 1671: d3d11.dll の読み込み.... 成功 1691: dxgi.dll の読み込み.... 成功 1695: API CreateDXGIFactory1 のアドレスを取得します.... 成功 1700: IDXGIFactory1 を作成します.... 成功 1717: API D3D11CreateDevice のアドレスを取得します.... 成功 1721: IDXGIAdapter を取得します.... 成功 1725: Direct3D 11 FeatureLevel 11_0 以上を対象とします 1727: ID3D11Device オブジェクトを取得します.... 失敗 1732: d3d11.dll の解放 1 1736: dxgi.dll の解放 1 1739: Direct3D11 のオブジェクト数を出力 1742: Direct3D11 のオブジェクト合計数 : 0 1765: DirectDraw オブジェクトの取得を行います.... 成功 1798: 引き続き初期化処理... 初期化に成功しました 1853: IDirect3D9Ex オブジェクトを取得します.... 成功 1861: 画面解像度を 1440 x 900 リフレッシュレートを 60Hz に変更します 1863: Desktop Window Manager を無効にしました 1864: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 2410: 成功 2412: Driver:atklumdisp.dll Description:NVIDIA GeForce 9800 GT 2413: 画面のフォーマットは D3DFMT_X8R8G8B8 です 2414: 16bit Zバッファフォーマットは D3DFMT_D16 です 2416: 24bit Zバッファフォーマットは D3DFMT_D24X8 です 2417: 32bit Zバッファフォーマットは D3DFMT_D24X8 です 2418: 16bit カラーフォーマットは D3DFMT_R5G6B5 です 2420: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 2421: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 2422: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 2424: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 2425: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 2427: DXT1テクスチャフォーマットはD3DFMT_DXT1 です 2428: DXT2テクスチャフォーマットはD3DFMT_DXT2 です 2429: DXT3テクスチャフォーマットはD3DFMT_DXT3 です 2430: DXT4テクスチャフォーマットはD3DFMT_DXT4 です 2432: DXT5テクスチャフォーマットはD3DFMT_DXT5 です 2433: ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 2434: ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 2435: ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 2437: 1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 2438: 1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 2439: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です 2441: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です 2442: 2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 2443: 2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 2444: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です 2446: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です 2447: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 2448: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 2449: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 2451: 描画用 ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 2452: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 2453: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 2454: 描画用1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_L8 です 2456: 描画用1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_L16 です 2457: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です 2458: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です 2460: 描画用2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 2461: 描画用2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です 2462: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です 2464: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です 2465: A8R8G8B8 カラーフォーマットは頂点テクスチャフェッチに使用できません 2466: X8R8G8B8 カラーフォーマットは頂点テクスチャフェッチに使用できません 2467: R5G6B5 カラーフォーマットは頂点テクスチャフェッチに使用できません 2469: A1R5G5B5 カラーフォーマットは頂点テクスチャフェッチに使用できません 2470: X1R5G5B5 カラーフォーマットは頂点テクスチャフェッチに使用できません 2471: 一度に描画できるプリミティブの最大数:8388607 2472: 対応している最大頂点インデックス:16777215 2474: 同時にレンダリングできるバッファの数:4 2475: 最大テクスチャサイズ 幅:8192 高さ:8192 2476: テクスチャステージテンポラリレジスタ:使用可 2478: 減算合成のハードウェア対応:ネイティブ 2479: ハードウェア頂点シェーダーバージョンコード:300 2480: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 2481: ピクセルシェーダーバージョンコード:300 2673: バックバッファロック転送の時間:31298nsec 一時的な描画可能バッファを使用した転送の時間:15564nsec 2675: バックバッファロックを使用しません 2676: Zバッファを作成します.... 成功 2701: プログラマブルシェーダーを使用します 2807: フォントの初期化を行います 2818: フォントの初期化は正常に終了しました 2864: 文字コードバッファの初期化を行います... 完了しました 2870:DXライブラリの初期化処理終了 12693:フォントの初期化を行います 12695:フォントの初期化は正常に終了しました 12698:Direct3DDevice9 の解放 2 12849:d3d9.dll の解放 1 12854:DirectInput 関連の終了処理... 完了 12894:DirectSound の終了処理は正常に終了しました 12907:ウインドウを閉じようとしています 12930:ウインドウが破棄されようとしています 12932:ソフトを終了する準備が整いました 12997: 13001:Alloc memory dump 13002: Total size:0(0.000kb) Alloc num:0 13014:
メンテ
Re: フリーズします ( No.3 )
名前:管理人 日時:2017/12/29 13:10

ログを貼り付けていただきありがとうございます 初期化処理のどこかでフリーズしてしまっているのかと思ったのですが、 ログを拝見する限りでは初期化処理ではフリーズしていないようです・・・ 載せていただいたプログラムでは画面の中心に小さい1ドットが描かれるだけで わかりにくいと思いますので、よろしければ以下の『白い四角形が画面を左右に動く』プログラムを実行して、 どのタイミングでフリーズしてしまうのか( 例えば『ウィンドウが出てから四角形が動き出すまで10秒以上時間が掛かる』や 『四角形が表示されてから動き出すまで何秒も時間が掛かる』など )教えていただけないでしょうか? m(_ _;m #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int x, add ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // メインループ x = 0 ; add = 8 ; while( ProcessMessage() == 0 ) { // 移動 x += add ; if( x < 0 || x > 640 ) add = -add ; // 画面のクリア ClearDrawScreen() ; // 四角形の描画 DrawBox( x, 120, x + 64, 120 + 64, GetColor( 255,255,255 ), TRUE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } あと、『一定時間フリーズする』とのことですが、具体的には何秒くらいなのでしょうか?
メンテ

Page: 1 |

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

   クッキー保存