NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInStart@4
NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInAddBuffer@12
NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInPrepareHeader@12
NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInOpen@24
Debug/NIC.exe : fatal error LNK1120: 4 unresolved externals
NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInAddBuffer@12
NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInPrepareHeader@12
NICDlg.obj : error LNK2001: unresolved external symbol __imp__waveInOpen@24
Debug/NIC.exe : fatal error LNK1120: 4 unresolved externals
我在类当中定义了下边这些变量,开始的时候说这些是不知道类型的变量.
HWAVEIN hWaveIn;
HWAVEOUT hWaveOut;
PBYTE pBuffer1,pBuffer2,pSaveBuffer,pNewBuffer;
PWAVEHDR pWaveHdr1,pWaveHdr2;
WAVEFORMATEX waveform;
DWORD dwDataLength,dwRepetitions;
后来我在我的窗口头文件中加入了
#include "Mmsystem.h"
#include "Mmreg.h"
就出现上面的五个错误了。
pBuffer1=(PBYTE)malloc(INP_BUFFER_SIZE);
pBuffer2=(PBYTE)malloc(INP_BUFFER_SIZE);
if (!pBuffer1 || !pBuffer2) {
if (pBuffer1) free(pBuffer1);
if (pBuffer2) free(pBuffer2);
MessageBeep(MB_ICONEXCLAMATION);
AfxMessageBox("Memory erro!");
return ;
}
waveform.wFormatTag=WAVE_FORMAT_PCM;
waveform.nChannels=1;
waveform.nSamplesPerSec=11025;
waveform.nAvgBytesPerSec=11025;
waveform.nBlockAlign=1;
waveform.wBitsPerSample=8;
waveform.cbSize=0;
if (waveInOpen(&hWaveIn,WAVE_MAPPER,&waveform,(DWORD)this->m_hWnd,NULL,CALLBACK_WINDOW)) {
free(pBuffer1);
free(pBuffer2);
MessageBeep(MB_ICONEXCLAMATION);
AfxMessageBox("Audio can not be open!");
}
pWaveHdr1->lpData=(LPTSTR)pBuffer1;
pWaveHdr1->dwBufferLength=INP_BUFFER_SIZE;
pWaveHdr1->dwBytesRecorded=0;
pWaveHdr1->dwUser=0;
pWaveHdr1->dwFlags=0;
pWaveHdr1->dwLoops=1;
pWaveHdr1->lpNext=NULL;
pWaveHdr1->reserved=0;
waveInPrepareHeader(hWaveIn,pWaveHdr1,sizeof(WAVEHDR));
pWaveHdr2->lpData=(LPTSTR)pBuffer2;
pWaveHdr2->dwBufferLength=INP_BUFFER_SIZE;
pWaveHdr2->dwBytesRecorded=0;
pWaveHdr2->dwUser=0;
pWaveHdr2->dwFlags=0;
pWaveHdr2->dwLoops=1;
pWaveHdr2->lpNext=NULL;
pWaveHdr2->reserved=0;
waveInPrepareHeader(hWaveIn,pWaveHdr2,sizeof(WAVEHDR));
pSaveBuffer = (PBYTE)realloc (pSaveBuffer, 1) ;
waveInAddBuffer (hWaveIn, pWaveHdr1, sizeof (WAVEHDR)) ;
waveInAddBuffer (hWaveIn, pWaveHdr2, sizeof (WAVEHDR)) ;
dwDataLength = 0 ;
waveInStart (hWaveIn) ;