憂鬱なプログラムの間違え

さて、これは某タイピングソフトのソースコードの一部なわけですが、
これを見て、何か気づくでしょうか。特に、case 11000:の後ろのあたり。

まず、switch(msg)で、ウィンドウメッセージの振り分けを行います。
次に、case WM_COMMANDに来て、さらにここでswitch(LOWORD(wp))で振り分けを行い、
case 11000でコマンドを実行しているわけです。
で、問題はこのcase文の最後の部分で、まず、breakされます。
さて、その次に実行されるのはどこの行でしょうか?

そう、その次に実行されるのは、その下のほうにあるPostQuitMessage(0)
本来なら、breakの後に}を入れて、さらに、その後の行にbreakを入れないと、
この関数まで実行されるわけです。

この間違えに気づくのにどれだけかかったことか。。。
もうね、自分があふぉかと思いましたよ。
しかも、この問題の争点が、違うプロシージャに移行したときに、
何かが起きてると勘違いをして、根本的に仕組みを
変えたものもすでに実装しちゃってたりします。

なんかなぁ、憂鬱だ、、、

Posted at : 2005-06-12 12:13:36 / Category : none

Comments

まだコメントはありません / No comment.

Send comment


Name


Mail-address (empty is OK. If you want to notify update, please fill mail-address.)


Bot check code (240427 と入力してください / Please input 240427.)