18:51お世話になります。先日のコーデック関連の件ではお騒がせしました。その後GetMovieImageSize_Fileの件で頂いたバイナリを用いて開発を続けておりましたが、非同期読み込みをONにした状態で読み込みを行った際にCheckHandleASyncLoadがTRUE(=1)しか返さずに読み込みが終わらないという状況が発生しました。コーデックの件で貼っていただいたバイナリでも試しましたが状況は同じでした。ttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=4310コード全てを貼ることができないのですが、問題は以下のようなコード(VB.net)で発生しています。こちらに資産として残っているVBのコードではProcessMessage()を行っていないように見えたので、この有無でも検証を行いましたが解決できませんでした。screen.Bounds.Y)'ウィンドウモード(枠無し)で起動DX.ChangeWindowMode(DX.TRUE)DX.SetWindowStyleMode(2)'ウィンドウがアクティブじゃない時も処理を続けるDX.SetAlwaysRunFlag(DX.TRUE)'DxLib_Init()を呼んだwindow以外からも操作を可能にするDX.SetMultiThreadFlag(DX.TRUE)'透過チャンネルを有効に設定DX.SetMovieColorA8R8G8B8Flag(DX.TRUE)'一度裏画面に描画を行い、Flipすると描画が行われるように設定(ダブルバッファリング)DX.SetDrawScreen(DX.DX_SCREEN_BACK)'2枚以上の画面にScreen.flipする場合デフォルトではVSync待ちで遅くなるのでVSyncは切るDX.SetWaitVSyncFlag(DX.FALSE)'多分これが無いとプログラム本体のIME関連動作がおかしくなるDX.SetUseIMEFlag(DX.TRUE)'開発したPCの環境ではこれを使わないとAccessViolationで落ちるDX.SetUseMediaFoundationFlag(DX.FALSE)調べても原因になりそうなものを見つけられなかったのですが、非同期読み込み指定時には何か他の処理も必要なのでしょうか?よろしくお願いします。ならないということでしょうか?その通りです。1分2分と放置してもずっとTRUEを吐き続けています。-1にもFALSEにもなりません。検証コードは以下の部分をWhile文で回していましたが、書くのを忘れていました。検証コードは以下の部分をWhile文で回していましたが、書くのを忘れていました。01:11ええっと、説明が悪くて申し訳ありません。While文でループするということでしょうか・・・?この部分は非同期ロードが終わらない事象を確認してから加えた部分です。Thread.Sleepなどの後に呼び出すなど幾つか読み出しを待つ処理を加えたり、提示して頂いたようなFALSEが返らない間何もしないWhile文を加えてProcessMessageを行うような処理を行っても非同期読み出しは終了しませんでした。一度書き直しましたが(VBで申し訳ありません)、以下のような処理でCheckHandleASyncLoad(handle)がFALSEになるのを待っても、ずっとTRUEしか返ってこないという状況です。13:07返信ありがとうございます。頂いたバイナリについて以下のコードで確認を行いましたが、音楽については正常に非同期ロードが行えるものの、やはり動画・画像については非同期読み込みが完了せず、ループを抜けることが出来ない状態でした。いうコードを書いて見ました。)のため、いずれもコメントアウトしています。※αチャネル付き動画は持っていないので未検証です。ありますが・・・すみません、前者は「これは動きました」という意味で書きました。後者は.vbprojを再確認すると参照が旧バージョンのファイルをさしていましたので、設定し直して問題ないことを確認いたしました。お手数をおかけしました。提示していただいたプログラムについては正常に動作することを確認しました。自分の作っているプログラムではメインのフォームと描画用スレッドを持ち、そこでDxLib関連の処理を行うという構造になっているので、問題はそこに有るのかもしれません。問題を再現できるプログラムを作成した後に返信を行います。申し訳ありません、返信を忘れていました。こちらでも動作を確認できましたが、やはり自分のプログラムでは動作しないという状況です。>管理人様サンプルの作成をし、メールでプロジェクトを送信しました。内容はメールに添付したとおりですが、こちらにもプログラムを載せます。内容としては、ロードと同時に描画スレッドを作成し、ボタンを押すとロードが開始され、ロードが終わると再生/描画が開始されるというものです。DrawLoopではLoadGraphを、SoundLoopではLoadSoundMem関数を利用しています。サンプルプログラムで利用している音源に関しては、下記のサイトのものを利用させていただきました。MsgBox("初期化に失敗しました。22:42こちらでも調査を続けましたが、現在公開されている3.14a以降の全バージョンにおいてこのやり方での画像ロードは不可能のようでした......。自分の作っているプログラムではメインのフォームと描画用スレッドを持ち、そこでDxLib関連の処理を行うという構造になっているので、問題はそこに有るのかもしれません。00:38解決しました!スレッドの外側でなく、以下のようにスレッドの開始時に呼ぶことで非同期読み込みが正常に完了することを確認できました!ライブラリの基本構造を理解しておらず、お手数おかけいたしました。(記事メンテ時に使用)クッキ。