トップページ > 記事閲覧
DXAファイルをDXArchivePreLoadで読込したときにメモリの解放忘れ?が発生します
名前:SmokingWOLF 日時: 2022/12/04 17:00

先日は早々のご対応、誠にありがとうございました。 DXAファイルをDXArchivePreLoad関数で読込すると、 Log.txt内にて、DxArchive_.cppでメモリの解放忘れがあったらしき文面が 出力される現象を確認しましたのでご報告いたします。 DXAファイルの中味は4ビットの24×24サイズのPNGファイル1つのみです。 使用させていただいたDXライブラリはバージョン「3.24a(2022/12/2版)」です。 環境依存の問題や、もしかしたら使い方が間違っているのかもしれませんが、 よければ一度ご確認いただけますと幸いです。 <再現時のLog.txt> ttps://silversecond.net/tmp/20221204_DxLibReport_Log.txt 最後のAlloc memory dumpでDxArchive_.cppに問題があったらしき表記が出ています。 <再現に使用したファイル> フォルダとDXAファイル ttps://silversecond.net/tmp/20221204_DxLibReport_TestData.zip 上記のZipファイルには、PNGファイル1個だけが入った「TestData」フォルダと、 「TestData.dxa」ファイルが入っています。 「TestData」フォルダをDxaEncode.exeにドラッグして作ったものが「TestData.dxa」となります。 (DxaEncode.exeはDXライブラリVer3.24に同梱されていたものを使用しました) <再現ソース> #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // ウィンドウモードに if (DxLib_Init() == -1) { return -1; } // DXライブラリ初期化処理 int result = DXArchivePreLoad("TestData.dxa"); if (result == -1) { MessageBox(NULL, "ファイルがありません", "", MB_OK); } DxLib_End(); return 0; // ソフトの終了 }
メンテ

Page: 1 |

Re: DXAファイルをDXArchivePreLoadで読込したときにメモリの解放忘れ?が発生します ( No.1 )
名前:管理人 日時:2022/12/04 22:34

再現用のプログラムとデータのご提供ありがとうございます m(_ _)m 朧気に『DXArchivePreLoad で読み込んだDXAファイルは自前で明示的に DXArchiveRelease で 解放しなければならない仕様にした』気がするのですが、何故そのような仕様にしたのか特に思い出せず、 且つ自動で解放しても特に問題は無さそうだったので DxLib_End の際に他のハンドル類と 同じように自動的に解放されるようにしました よろしければその変更を加えたこちらのバージョンをお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: DXAファイルをDXArchivePreLoadで読込したときにメモリの解放忘れ?が発生します ( No.2 )
名前:SmokingWOLF(解決済) 日時:2022/12/05 09:11

すみません、DXライブラリが全体的に親切すぎてメモリ解放するという発想が全然なくてお手数をおかけしてしまいました。 さっそく実験してみたところ、メモリ漏れは確認されなくなりました。 要望みたいになってしまったというのに修正対応してくださって誠にありがとうございます!
メンテ

Page: 1 |

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

   クッキー保存