メモメモ
・
は当然だけど、
a NAND b = NOT( a AND b )
は
NAND( a, b, c )((要するに3入力NAND))
ではダメで、
(a NAND b) NAND c
が正解。
NOT( (a AND b) AND c )
(別に中の()は不要だけど)
…というか、演算順序的に当たり前か…。
・
何かデバイス解放中に例外が起こるんだけど、
ハンドルをローカルに保存しておくと大丈夫。
…何でかと思ったら、ハンドルの保存場所を解放した後にデバイス解放しようとしてた…orz
以下、実際の失敗例。
MMRESULT CloseWaveOut( WAVEBUF *wave )
{
// 解放後も使えるように
// 一旦ローカルに代入
//HWAVEOUT wave_out = wave->wave_out;waveOutPause( wave->wave_out );
waveOutReset( wave->wave_out );waveOutUnprepareHeader( wave->wave_out,
wave->header[0], sizeof(WAVEHDR) );
waveOutUnprepareHeader( wave->wave_out,
wave->header[1], sizeof(WAVEHDR) );free( wave->data[0] );
free( wave->data[1] );
free( wave->header[0] );
free( wave->header[1] );
// 解放してしまっている
free( wave );// ここでハンドルをまた使うのに…
return waveOutClose( wave->wave_out );
}