06/01/30 23:47:45
>>75
>LoadResImageにいたってはコールバックの登録がLoadResImageの後だし、
>表示のためのコールバックとなっていて読み込み完了には言及されていない
コールバックの意味分かってるかい?
IIMAGE_Notify()で登録する関数は、読み込みが完了したら呼ばれる関数だ。
だからこの関数が呼ばれるということは読み込みが完了したということであり、
関数の内容が表示処理になってるのも当たり前。
コールバック関数の登録は、読み込みを指示した直後にする。
だからサンプル通りの順番で合ってる。
プログラミングガイドのP200あたりに出てるJPEG読み込みのサンプル見てるだろ?
念のため解説してやるよ。
1.ファイルから読み込む例なのでIFileMgrのインスタンスを作る。
2.jpeg読み込みのためにIImageのインスタンスを作る。
インスタンス生成に失敗したらIFileMgrを解放してリターン。
3.いよいよjpegファイルを読み込む。
読み込みに失敗したらIImageとIFileMgrを解放してリターン。
(↑このIIMAGE_Release()を勘違いしたんじゃないか?)
4.IIMAGE_Notify()でコールバック関数を登録。
ここで登録した関数はファイルの読み込み完了時点で呼ばれる。
ここでreturnとはかかれてないが「------(線)」で区切ってあるだろ?
ここから別の記述場所だよってこと。
他に何か処理を続けるにしても、いずれreturnしますよ、ということ。
5.一方、コールバック関数は… 読み込みが完了したことによって
ここが実行されているので、あとは表示するだけ、と。
説明が下手かもしれないけど、大体わかるだろ?