LoadGraphが変なID返してくる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Suikaba
記事: 194
登録日時: 9年前

LoadGraphが変なID返してくる

#1

投稿記事 by Suikaba » 7年前

コード:

SetUseASyncLoadFlag( TRUE ); // 確認したところ成功している
int tmp = LoadGraph( "A" ); // 明らかにこんなファイルはない
上記のコードで、Aなんてファイルがないので、tmpには-1が入るのかと予期していました。
が、一見有効に見える数字(67436547等)を返してきまして、とても困っております。

この症状僕だけですかね?そもそもこういう挙動なんでしょうか。
よろしくお願いします。

【開発環境】
Visual Studio 2012 pro
Win7 64bit
C++
DxLib 最新のバージョン

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: LoadGraphが変なID返してくる

#2

投稿記事 by softya(ソフト屋) » 7年前

Dxlib_Init();後に
int tmp = LoadGraph( "A" ); // 明らかにこんなファイルはない
していないと動作が保証されません。それじゃないでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Suikaba
記事: 194
登録日時: 9年前

Re: LoadGraphが変なID返してくる

#3

投稿記事 by Suikaba » 7年前

DxLib_Initはもちろんしていますね。初期化関連は全部チェック済みなので、問題ありません。
また、SetUseASyncLoadFlag関数を呼び出さなければ、ちゃんと要求した-1が返ってきます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: LoadGraphが変なID返してくる

#4

投稿記事 by softya(ソフト屋) » 7年前

あっSetUseASyncLoadFlag(TRUE)ですね。
それなら、仮のハンドルが割り当てられるので正しい動作です。
同期した時に初めて本当の結果が得られます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Suikaba
記事: 194
登録日時: 9年前

Re: LoadGraphが変なID返してくる

#5

投稿記事 by Suikaba » 7年前

なるほど、そういうことでしたか。ありがとうございます。
しかしそれだと、非同期の場合はLoadGraph呼び出し時に、そのファイル名が有効かどうか判断するにはLoadGraphとは別に処理を書かないといけないんですかね…

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: LoadGraphが変なID返してくる

#6

投稿記事 by softya(ソフト屋) » 7年前

はい、チェックするまでわかりません。
int CheckHandleASyncLoad( int Handle ) ;
でチェックしてください。
戻り値 TRUE:非同期読み込み中 FALSE:非同期読み込みは終了している -1:エラー

まぁ、非同期なので他に方法はないわけです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Suikaba
記事: 194
登録日時: 9年前

Re: LoadGraphが変なID返してくる

#7

投稿記事 by Suikaba » 7年前

そうですよね。丁寧にありがとうございます。
またよろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る