トップページ > 記事閲覧
2回目のDxLib_Init()で止まってしまいます。
名前:oft 日時: 2024/10/24 20:21

初めまして。 この度初めてDXライブラリを使用させて頂きたいと思い、早速取り掛かっているのですが、うまくいかないところがあり、相談させて頂きたいと思います。 VC2010でダイアログを表示し、ボタンを押すとDXライブラリを起動するようにしているのですが、起動してウインドウのXボタンで終了して、もう一度ダイアログのボタンを押すとDxLib_Init()から抜けてこなくなります。 ウインドウは表示されるのでXボタンを押すと抜けて終了します。 試しにDxLib_Init()→DxLib_End()→DxLib_Init()と連続で呼び出しても2回目のDxLib_Init()で抜けてこなくなります。 2回目以降を起動するには何か手順が必要でしょうか? よろしくお願いいたします。
メンテ

Page: 1 |

Re: 2回目のDxLib_Init()で止まってしまいます。 ( No.1 )
名前:管理人 日時:2024/10/25 02:09

すみません、DxLib_End の後に DxLib_Init を呼ぶと DxLib_Init から処理が返ってこないバグがありました 修正版をこちらにアップしましたので、よろしければお試しください 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 12 用 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: 2回目のDxLib_Init()で止まってしまいます。 ( No.2 )
名前:oft(解決) 日時:2024/10/25 06:23

うまく起動出来ました! ご対応ありがとうございます!
メンテ
Re: 2回目のDxLib_Init()で止まってしまいます。 ( No.3 )
名前:あい 日時:2024/10/25 12:14

管理人様へ 自分は以前再初期化させたい場合に DxLib_End()→DxLib_GlobalStructInitialize()→ DxLib_Init()でエラーを回避していました DxLib_GlobalStructInitialize()は使用する必要がなくなったということでしょうか? また修正前の自分のやり方と修正版どちらもなのですが DXライブラリを再初期化すると微々たる量ではありますがメモリ使用量が増えます これは回避出来ないのでしょうか?
メンテ
Re: 2回目のDxLib_Init()で止まってしまいます。 ( No.4 )
名前:管理人 日時:2024/10/26 02:23

> DxLib_GlobalStructInitialize()は使用する必要がなくなったということでしょうか? すみません、DxLib_GlobalStructInitialize の存在を失念していましたが、DxLib_GlobalStructInitialize を 実行しないと 2回目の DxLib_Init が失敗するというのはバグでしたので、現在は DxLib_GlobalStructInitialize を 使用しなくても 2回目以降も DxLib_Init は成功します ただ、DxLib_GlobalStructInitialize を使用した方がより1回目と同じ状態で DxLib_Init が実行されるので 安全であるとは思います > また修正前の自分のやり方と修正版どちらもなのですが > DXライブラリを再初期化すると微々たる量ではありますがメモリ使用量が増えます > これは回避出来ないのでしょうか? DXライブラリが管理しているメモリは全て DxLib_End で解放していますので、DXライブラリが使用している API 等の中にメモリが残ってしまうものがあるのかもしれません( DXライブラリの中に解放し忘れてしまっている ものがある可能性もありますが… ) DXライブラリは DxLib_End の後に DxLib_Init が呼ばれることは基本的には想定してしませんので なるべく DxLib_Init と DxLib_End を繰り返すような使い方はしないようにしていただくのが良いかと思います
メンテ
Re: 2回目のDxLib_Init()で止まってしまいます。 ( No.5 )
名前:あい(解決) 日時:2024/10/26 10:58

ご説明ありがとうございました!
メンテ

Page: 1 |

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

   クッキー保存