编译时提示以下错误:
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_noMixer.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInGetNumDevs@0,该符号在函数 "private: static void __cdecl WindowsAudioInputDevice::initializeIfNecessary(void)" (?initializeIfNecessary@WindowsAudioInputDevice@@CAXXZ) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_noMixer.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInGetDevCapsW@12,该符号在函数 "public: void __thiscall AudioInputPort::open(unsigned int,unsigned int,unsigned int)" (?open@AudioInputPort@@QAEXIII@Z) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInStart@4,该符号在函数 "private: static bool __cdecl WindowsAudioInputDevice_common::waveIn_open(unsigned int,struct tWAVEFORMATEX &)" (?waveIn_open@WindowsAudioInputDevice_common@@CA_NIAAUtWAVEFORMATEX@@@Z) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInAddBuffer@12,该符号在函数 "private: static bool __cdecl WindowsAudioInputDevice_common::waveIn_open(unsigned int,struct tWAVEFORMATEX &)" (?waveIn_open@WindowsAudioInputDevice_common@@CA_NIAAUtWAVEFORMATEX@@@Z) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInPrepareHeader@12,该符号在函数 "private: static bool __cdecl WindowsAudioInputDevice_common::waveIn_open(unsigned int,struct tWAVEFORMATEX &)" (?waveIn_open@WindowsAudioInputDevice_common@@CA_NIAAUtWAVEFORMATEX@@@Z) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInOpen@24,该符号在函数 "private: static bool __cdecl WindowsAudioInputDevice_common::waveIn_open(unsigned int,struct tWAVEFORMATEX &)" (?waveIn_open@WindowsAudioInputDevice_common@@CA_NIAAUtWAVEFORMATEX@@@Z) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInClose@4,该符号在函数 "public: static void __cdecl WindowsAudioInputDevice_common::waveIn_close(void)" (?waveIn_close@WindowsAudioInputDevice_common@@SAXXZ) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInUnprepareHeader@12,该符号在函数 "public: static void __cdecl WindowsAudioInputDevice_common::waveIn_close(void)" (?waveIn_close@WindowsAudioInputDevice_common@@SAXXZ) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInReset@4,该符号在函数 "public: static void __cdecl WindowsAudioInputDevice_common::waveIn_close(void)" (?waveIn_close@WindowsAudioInputDevice_common@@SAXXZ) 中被引用
1>WindowsAudioInputDevice_noMixer.lib(WindowsAudioInputDevice_common.obj) : error LNK2019: 无法解析的外部符号 __imp__waveInStop@4,该符号在函数 "public: static void __cdecl WindowsAudioInputDevice_common::waveIn_close(void)" (?waveIn_close@WindowsAudioInputDevice_common@@SAXXZ) 中被引用
1>F:\WindowsAudio\Debug\showAudioInputPorts.exe : fatal error LNK1120: 10 个无法解析的外部命令
错误原因:wavein函数被包含在库“Winmm.lib”中,由于项目没有包含该库,导致无法解析。
补救措施:项目--属性--链接器--输入--附加依赖项
添加“Winmm.lib”,重新编译即可。
经验:一般无法解析的外部符号都是因为缺少库文件引起的,遇到这种问题去网上查一下缺少的是哪个库,加入到项目的库目录中即可。