トップページ > 記事閲覧
非同期読み込み失敗時の戻り値について
名前:Tir 日時: 2018/02/07 17:37

お世話になっております。 通常読み込み時はLoadSoundMem関数などで読み込み失敗した場合戻り値に-1が返りますが 非同期読み込みで失敗した場合には-1が返りませんこれは仕様ですか?
メンテ

Page: 1 |

Re: 非同期読み込み失敗時の戻り値について ( No.1 )
名前:管理人 日時:2018/02/08 00:26

はい、仕様です 非同期読み込みでは LoadSoundMem から処理が戻ってきた段階ではファイルが存在するかすら チェックしていないので、読み込み処理が成功したかどうかは CheckHandleASyncLoad で確認する必要があります CheckHandleASyncLoad は渡されたハンドルの非同期読み込み処理が完了していれば FALSE が、 まだ完了していなければ TRUE が返るのですが、ハンドルが無効になっている場合は -1 が返ります LoadGraph や LoadSoundMem はファイルが無かった場合やファイルがあっても非対応の形式だった等で 読み込みに失敗した場合はハンドルを自動的に削除するので、CheckHandleASyncLoad が FALSE を返すように なったか -1 を返すようになったかで読み込みが成功したかどうかを判断することができます ( TRUE が返ってくる間は、まだ非同期読み込みの処理が完了していないということです ) SetUseASyncLoadFlag( TRUE ) ; int SoundHandle = LoadSoundMem( "testWav.wav" ) ; while( ProcessMessage() == 0 ) { int Result = CheckHandleASyncLoad( SoundHandle ) ; if( Result == FALSE ) { // 読み込み成功 break ; } else if( Result == -1 ) { // 読み込み失敗 break ; } }
メンテ
Re: 非同期読み込み失敗時の戻り値について ( No.2 )
名前:Tir(解決) 日時:2018/02/08 00:37

回答ありがとうございます。 やはり自分でチェックするしかないようですね
メンテ

Page: 1 |

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

   クッキー保存