DirectSoundの盲点

現在、うちのパソコンは音が鳴りません。先日、OSがぶっ飛んで、とりあえず臨時で上書きインストールしてその状態でDATA避難等の作業をやっております。なので最小限のものしかインストールしていません。音源ドライバも多分不要だろうと言うことで入れてません。まあ、音がなくても作業できるし、音がなくてもゲームもできるし(ちょい大変だけど)・・・と思っていたらゲームはどうやらできないっぽい。
おかげさまでちょっとした発見。音源ドライバがひとつもない場合(複数あるのも稀だろうけど)、DirectSoundの初期化に失敗するらしい。まあ当たり前といえば当たり前だけどしかしこんなことは音源が入っていない環境でしか再現することはないだろうから結構チェックしていないゲームが多いようだ。
DirectSoundの初期化を失敗したらバッファの生成も当然失敗する。そうしたらIDirectSoundBuffer8* とかは当然ぬるぽが返ってくる。そしてこいつを再生しようとしたら・・・ぬるぽ参照で落っこちる・・と。こうしないためにはIDirectSoundBuffer8をラッピングしてぬるぽチェックすればよいのだけれども、そもそもIDirectSoundBuffer8は非常に単純かつわかりやすいのでわざわざラッピングすることもなく、直接叩いてしまう。そうすると外でいちいちぬるぽチェックなんてしないものだから音を鳴らそうとして落っこちる。
まあ、ゲームやりたきゃ音源ぐらい入っているのは当然だとは思うけど、やっぱり音源が入っていなければ音がない状態でも動くほうがいいんじゃないかなとも思います。





ていうか、さっさとOS再インストールしろよ。