#include "stdafx.h" #include "mmsystem.h" #include "makewave.h" int makewave(unsigned char * buffer, DWORD size) { HMMIO file1; file1 = mmioOpen("my.wav",NULL,MMIO_CREATE | MMIO_WRITE); long i; char title0[5]="RIFF"; i=mmioWrite(file1,title0,4); DWORD j; j = 4*4+sizeof(PCMWAVEFORMAT)+size; i=mmioWrite(file1,(char*)&j,4); char title1[5]="WAVE"; i=mmioWrite(file1,title1,4); char title2[5]="fmt "; i=mmioWrite(file1,title2,4); j=sizeof(PCMWAVEFORMAT); i=mmioWrite(file1,(char *)&j,4); PCMWAVEFORMAT vf; vf.wf.wFormatTag=WAVE_FORMAT_PCM; vf.wf.nChannels=1; vf.wf.nSamplesPerSec = 44100; vf.wf.nAvgBytesPerSec = 44100; vf.wf.nBlockAlign = 1; vf.wBitsPerSample = 8; i=mmioWrite(file1,(char*)&vf,sizeof(PCMWAVEFORMAT)); char title3[5]="data"; i=mmioWrite(file1, title3, 4); j=size; i=mmioWrite(file1,(char *)&j, 4); i=mmioWrite(file1,(char *)buffer,size); i=mmioClose(file1,0); return 0; }