急100分奖励怎么用API waveoutwrite函数播放wav文件

急!100分奖励如何用API waveoutwrite函数播放wav文件
我是女生,不擅长写程序,至今连C++都不会,因为给导师写程序要用到这个函数。程序目的很简单,就是软件自动产生一段噪声然后播放出来。本人从网上找到一段类似的录音放音代码,想在代码的基础上修改。
这里有些个问题:1)播放音频程序的时候,难道不是按顺序调用函数WaveOutOpen(),WaveOutPrepare(),WaveOutWrite(),WaveOutUnprepare(),WaveOutReset(),WaveOutClose()就行了吗,为什么还要用到callback,wndProc,MM_WOM_Open什么的。
2)我按以上那个流程播放音频的时候,每次都只能听到噗噗的噪声,其他什么都听不到,而且waveOutUnprepare()还经常返回33,意思是数据没有播放完
我也不明白关于多个buffer的操作方法。
请高手们予以指点,谢谢。

------解决方案--------------------
如果只是播放一个音频 一定要用waveoutwrite函数吗
------解决方案--------------------
我觉得你可以在内存中生成一段WAV的数据,再把这段内存的指针发给sndplaysound函数......

参考:

http://topic.csdn.net/u/20070815/03/fa7cf3b2-0751-4108-ad78-ad704603baf9.html

WAV文件头就直接读一个WAV的来用,音频数据自己生成即可.
------解决方案--------------------
看看下面这个代码对你有没有帮助
http://www.21code.com/codebase/code_1985.html

------解决方案--------------------
用mciSendString就可以了
------解决方案--------------------
VB code
Private Declare Function sndPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Sub Command1_Click()
    sndPlaySound "C:\1.wav",1
End Sub