SndPlaySound()最初是为WIN3.1糊弄事的,WAV超过64K就有危险,WIN95 98下好一些,但也受内存限制。是不是你的WAV文件太大了,>1M?如果不是,通常是程序中的其他内存泄露造成的。

解决方案 »

  1.   

    如果真是这样,改用waveIn*/waveOut*如何?
      

  2.   

    需要播放大wave的话用DirectSound吧,可以用流的形式播放。
      

  3.   

     我用的WAV文件<64k,大部分是30k左右,要求异步播放,而且程序运行几十天或几个月才出现这种情况。可能是内存的问题,但检查程序中的其他内存无泄露,如果不用SndPlaySound,哪个函数是最佳选择呢,既适合播放小的WAV文件又简单?