ムービーファイルを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: