(・ロ・)ホ,('ロ')ホ--ッッ!!!… VB初心者質問スレ Part17
■ このスレッドは過去ログ倉庫に格納されています
0613デフォルトの名無しさん
NGNGMSDN に載っていなかっただろうか。(バージョンによってはそうでないかも知れない)
| アプリケーションは、PostMessage、timeGetSystemTime、timeGetTime、timeSetEvent、
| timeKillEvent、midiOutShortMsg、midiOutLongMsg、および OutputDebugString を
| 除いて、コールバック関数の中から、どんなシステム定義された機能も呼ぶべきでは
| ありません。
これに反する事はやってはいけない。
それを守らなければ、何が起こるかわからない。
Unload なんかしたら、DestroyWindow() やら DeleteObject() やら、おびただしい量の
API が呼ばれる。
これらを見切れないようでは、timeSetEvent() を呼んではいけない。
そもそも VB は途方も無く遅いので、高精度タイマを使うのには向いていない。
本当に高精度タイマが必要なのか?
タイマーコントロールが使えないかを検討する事。
なお、コールバック関数が 1 度しか呼ばれない事を期待する場合は、最後の引数に 1
ではなく 0 を指定する。
これにより、timeKillEvent() を呼び出す必要がなくなる。
より良い方法では、マジックナンバーの代わりに TIME_ONESHOT、TIME_PERIODIC 定数
を定義する。
■ このスレッドは過去ログ倉庫に格納されています