トップページ > 記事閲覧
ムービーをロードするとメモリリーク
名前:ウィン 日時: 2013/06/15 00:32

ムービーファイルをLoadGraphでロードするとメモリリークすることを確認しました。 開発環境 ・OS:Window7,64ビット ・開発ツール:Microsoft Visual C++ 2010 Express ・グラボ:Intel(R) Graphics Media Accelerator HD サンプルプログラム #include "DxLib.h" // メモリリーク検出 #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> #define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__) // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ int graphHandle; // メモリリーク検出 _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); // DXライブラリ初期化処理 エラーが起きたら直ちに終了 if( DxLib_Init() == -1 ) return -1 ; // ムービーをロード graphHandle = LoadGraph( "TestMovie.avi" ); // ムービーを削除 DeleteGraph( graphHandle ); // DXライブラリ使用の終了処理 DxLib_End() ; return 0; } 上記のサンプルプログラムを実行すると Microsoft Visual C++ 2010 Express の出力ウィンドウに以下のメッセージが表示されます。 Detected memory leaks! Dumping objects -> {103} normal block at 0x010C3A50, 80 bytes long. Data: < L 8 > A4 04 92 00 4C 04 92 00 38 04 92 00 D0 1A 0C 01 {79} normal block at 0x010C3A08, 6 bytes long. Data: <I n > 49 00 6E 00 00 00 {78} normal block at 0x010C1D60, 224 bytes long. Data: < ` ` > B8 01 92 00 60 1D 0C 01 00 00 00 00 60 01 92 00 {75} normal block at 0x010C1AD0, 392 bytes long. Data: << > 3C 08 92 00 D0 1A 0C 01 CB FF FF FF F4 07 92 00 Object dump complete. また、Log.txtは以下の通りです。 0:設定されている画面設定 640x480 16bit color 59:システムの情報を出力します 61: DXライブラリ Ver3.10d 63: 論理プロセッサの数 : 4 64: OS Windows7 ( Build 7601 Service Pack 1 ) 167: CPU動作速度:大体2.50GHz 168: MMX命令を使用します 170: SSE命令が使用可能です 172: SSE2命令が使用可能です 183: CPUベンダ:GenuineIntel 190: CPU名:Intel(R) Core(TM) i5 CPU M 540 @ 2.53GHz 195:COMの初期化... 成功しました 210:メモリ総量:3766.89MB 空きメモリ領域:1900.96MB 214:タイマーの精度を検査します 215:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 217: パフォーマンスカウンターを使用します タイマー精度 : 2467.695000 KHz 221: ソフトの二重起動検査... 二重起動はされていませんでした 225:ウインドウクラスを登録します... 登録に成功しました 227:フルスクリーンモード用のウインドウを作成します 306:ウインドウの作成に成功しました 308:ウインドウを表示します 333:カーソルを不可視にしました 335:IMEを無効にしました 364:DirectInput関係初期化処理 367: XInput DLL の読み込み中... 成功 391: DirectInput7 の取得中... 成功 423: 引き続き初期化処理... 初期化成功 429: ジョイパッドの初期化... 441: ジョイパッドの初期化は正常に終了しました 442: マウスデバイスの初期化... 初期化成功 446: キーボードデバイスの初期化... 初期化成功 450:DirectInput 関連の初期化は正常に終了しました 455:XAudio2 の初期化を行います 457: XAudio2 インターフェースの取得を行います.... 成功 Ver2.7 470: 引き続きインターフェースの初期化処理... 成功 473: X3DAudio.DLL の読み込み中... 成功 870: デバイス名:スピーカー / ヘッドフォン (Realtek High Definition Audio) 875: チャンネル数:2 877: ビット精度:16bit 879: サンプリングレート:44100Hz 883:XAudio2 の初期化は正常に終了しました 898:DirectDraw オブジェクトの取得を行います.... 成功 919:引き続き初期化処理... 初期化に成功しました 1020:IDirect3D9Ex オブジェクトを取得します.... 成功 1393:Desktop Window Manager を無効にしました 1409:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 3497:成功 3500:Driver:igdumdx32.dll Description:Intel(R) Graphics Media Accelerator HD 3502:画面のフォーマットは D3DFMT_R5G6B5 です 3504:Zバッファのフォーマットは D3DFMT_D16 です 3505:16bit カラーフォーマットは D3DFMT_R5G6B5 です 3507:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 3508:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 3510:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 3512:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 3513:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 3515:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 3516:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 3518:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 3519:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 3521:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 3523:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 3524:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 3526:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 3528:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 3529:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 3531:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 3533:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 3534:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 3536:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 3538:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 3539:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 3541:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 3543:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 3544:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 3546:一度に描画できるプリミティブの最大数:1048575 3548:対応している最大頂点インデックス:16777215 3549:同時にレンダリングできるバッファの数:4 3551:最大テクスチャサイズ 幅:4096 高さ:4096 3553:テクスチャステージテンポラリレジスタ:使用可 3554:減算合成のハードウェア対応:ネイティブ 3556:ハードウェア頂点シェーダーバージョンコード:300 3557:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 3559:ピクセルシェーダーバージョンコード:300 3600:バックバッファロック転送の時間:6761nsec 一時的な描画可能バッファを使用した転送の時間:1191nsec 3602:バックバッファロックを使用しません 3604:Zバッファを作成します.... 成功 4098:プログラマブルシェーダーを使用します 4370:フォントの初期化を行います 4377:フォントの初期化は正常に終了しました 4677:文字コードバッファの初期化を行います... 完了しました 4816:フォントの初期化を行います 4819:フォントの初期化は正常に終了しました 4832:Direct3DDevice9 の解放 2 6761:Direct3D9 DLL の解放 1 6786:DirectInput 関連の終了処理... 完了 6986:ウインドウを閉じようとしています 6995:ウインドウが破棄されようとしています 7001:ソフトを終了する準備が整いました 7055: 7059:Alloc memory dump 7062: Total size:0(0.000kb) Alloc num:0 7064:
メンテ

Page: 1 |

Re: ムービーをロードするとメモリリーク ( No.1 )
名前:管理人 日時:2013/06/23 21:01

ご指摘ありがとうございます 修正版をアップしましたので、よろしければお試しください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: ムービーをロードするとメモリリーク ( No.2 )
名前:ウィン(解決) 日時:2013/06/25 16:06

こちらでも修正されたことを確認しました。 ありがとうございます。
メンテ

Page: 1 |

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

   クッキー保存