喫茶XRAYトップページ

[スレッド全体
]

[9077] Re2:再帰的処理返信 削除
2015/8/8 (土) 20:19:27 taki
甘えるな〜! とお叱りを受けそうなので調べました。

呼び出す側の関数Aに引数として渡される関数Bがあるとすると、
呼び出される関数Bがコールバック関数なんですね。

APIのEnmuXXXはもちろん呼び出す側の関数Aに該当するのですが、
自分で書いた関数でも、他の関数を引数で呼び出すように書けば
関数Aになるようです。
関数の名前をEnmuXXXにする必要もないようです。



[9078] コールバック関数返信 削除
2015/8/8 (土) 20:38:33 taki
OSでしか分からないタイミングって何かを考えました。

例えば、連続WAVEファイルの再生とかは、再生するファイルが複数個あって、
順次ファイルからバッファへデータを読み込んで、バッファの内容を再生する
事になるのですが、この「今のバッファ分の再生が終わりましたよ〜、次の再生の
バッファに切り替えますよ〜」のタイミングはOSでしかわからないんですよね。

連続WAVEファイルの再生の場合は、ウィンドウズのメッセージが知らせてくれる
のですが、このメッセージの内容で呼び出される関数もコールバック関数と
言うのでしょうか?


[9080] Re:コールバック関数返信 削除
2015/8/8 (土) 21:52:23 Mr.XRAY
▼ takiさん

> 連続WAVEファイルの再生の場合は、ウィンドウズのメッセージが知らせてくれる
> のですが、このメッセージの内容で呼び出される関数もコールバック関数と
> 言うのでしょうか?


これはどうなんでしょうね.
その関数が HogeCallBackProc という名前だとして,
  HogeHogeMessages(Handle, @HogeCallBackProc);
というように定義したときに,この HogeCallBackProc という関数内で
その該当メッセージを処理できれば,あるいは処理できるようすれば,
コールバック関数と言ってもいいのかも知れません.かな ?

う〜む.わからん.


[9079] Re3:再帰的処理返信 削除
2015/8/8 (土) 21:44:17 Mr.XRAY
▼ takiさん

> 甘えるな〜! とお叱りを受けそうなので調べました。

そんなこと,誰も言わないもん !

> 呼び出す側の関数Aに引数として渡される関数Bがあるとすると、
> 呼び出される関数Bがコールバック関数なんですね。

  (以下,略)

ですよね.

>最初からTListに一覧で返してくれたいいと思うんですけどね。

確かに (^^;
まっ,でも,おそらく,マイクロソフトとしては,いろいろ考えて,
汎用性のある方法として,コールバックという方式を考えたのではないかと...
いえ,別にマイクロソフトの肩を持つわけじゃあないですけど.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82